曾经看到有人用iframe来实现AJAX,我想了一下,用Iframe怎么实现POST请求呢?想了一个办法,不知道行不行,就是在iframe里面加载一个form页面,parent页面只要把参数设置到这个form的input里面,然后提交表单。这样iframe就可以提交POST请求,返回结果页面了。接下来,只要在结果页面里面调用parent.xxx就可以把结果传递给调用者了。也可以监听iframe.onload事件,然后直接调用iframe里面的结果页面的函数。
page A(parent page)
function request(url, value, method){
var oIframe = document.getElementById("myframe");
var oDoc = oIframe.contentWindow || oIframe.contentDocument;
if (oDoc.document) {
oDoc = oDoc.document;
}
oIframe.onload=function(){
alert(oDoc.getElementById("result"));
}
var form = oDoc.forms[0];
form.action=url;
form.method = method;
form["value"]=value;
form.submit();
}
function setResult(rst){
alert(rst);
}
<iframe src="form_page" id="myframe" style="display:none;"/>
page B (form_page)
<form action="#" method="post"><input type="text" value="" name="value"/></form>
page c1 (Result page 1: parent page get result on it's
own initiative
)
<div id="result">Success</div>
page c2 (Result page 2: result page in iframe give the result back to parent page)
<script>parent.setResult("success")</script>
分享到:
相关推荐
以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...
通过深入理解这些知识点,并结合提供的"Iframe模拟Ajax-经典"压缩包中的代码示例和文档,你可以更有效地掌握如何在面临同源策略限制时,使用Iframe来模拟Ajax请求,实现跨域数据交互。这将有助于你在开发过程中解决...
标题中的“隐藏框架实现ajax”指的是在Web应用中利用HTML的隐藏IFrame(<iframe>)元素结合Ajax技术,以实现页面数据的无刷新更新。这种方法常见于那些需要后台静默处理任务或需要异步加载内容但又不想打扰用户界面...
通常,这会涉及到AJAX请求,将数据发送到服务器,然后根据返回的结果更新iframe内容。例如,使用jQuery的AJAX方法: ```javascript $.ajax({ type: 'POST', url: 'submitData.php', // 服务器端处理数据的脚本 ...
本主题聚焦于利用`iframe`来实现这一功能,这在不支持现代Ajax技术的旧版浏览器或者需要处理跨域请求时特别有用。 `iframe`,全称Inline Frame,是一种在HTML文档中嵌入另一个HTML文档的元素。通过设置`iframe`的`...
### 如何实现Ajax跨域访问 在Web开发中,由于同源策略的限制,JavaScript只能对同源的页面进行操作,不能对不同源的页面进行请求。然而,在实际的应用场景中,经常会出现需要向不同域名下的服务器发起请求的情况。...
在本项目中,“隐藏框架实现ajax原理”是一个演示如何利用隐藏iframe来实现Ajax交互的实例。下面我们将详细探讨Ajax的工作原理以及如何通过隐藏框架实现这一过程。 1. **Ajax工作原理**: Ajax的核心是JavaScript...
在探讨HTML5中使用postMessage实现Ajax跨域请求的方法之前,首先要明白同源策略(Same-origin Policy)的基本概念。浏览器同源策略是一种安全机制,它限制了来自不同源的文档或者脚本如何进行交互。所谓的“同源”指...
创建一个隐藏的IFrame,将表单目标设置为该IFrame,然后利用ActiveXObject或XMLHttpRequest(对于支持的浏览器)发起POST请求。 实现步骤如下: 1. 创建一个HTML表单,包含一个文件输入元素。添加事件监听器,以便...
而纯AJAX上传文件存在一个问题,由于浏览器的安全限制,XMLHttpRequest对象无法跨域发送PUT或POST请求,这在文件上传时通常需要用到。因此,利用iframe作为目标可以解决这个问题,因为iframe允许跨域提交。 以下是...
总结,Ajax跨域请求涉及浏览器的同源策略、CORS、JSONP、POSTMessage等多个知识点,理解并熟练运用这些技术是现代Web开发中的必备技能。在确保安全性的前提下,合理地利用跨域机制可以极大地提升用户体验和应用性能...
ajaxPost: function() { $.ajax({ url: this.baseUrl + url + signParam(), type: 'POST', async: true, data: JSON.stringify(data), dataType: 'json', // 其他配置... }); }, }; ``` 总的来说,虽然`...
在 AJAX 出现之前,Web 开发人员就已经能够通过使用 iframe 来实现页面的部分刷新,尤其是对于文件上传这类操作而言。然而,随着 AJAX 的普及,更多的开发者转向了这种更为灵活和现代化的技术。 #### 使用 iframe ...
6. **回溯兼容性**:对于不支持XMLHttpRequest的老版浏览器,开发者可能需要使用IFRAME或其他技术来实现类似的功能,但这并不意味着这些技术与XML有关。回溯解决方案的选择更多是基于浏览器兼容性的考虑,而不是数据...
UpdatePanel的工作原理是利用IFrame和隐藏的HTTP POST请求在后台与服务器通信。 2. **ASP.NET AJAX PageMethods 和 WebServices** 这种方法涉及到直接从客户端JavaScript调用服务器上的静态PageMethods或Web...
3. **IFrame和Window.postMessage**:通过在不同的源之间创建IFrame,利用`window.postMessage`方法可以实现双向通信,从而达到跨域数据交换的目的。这种方法需要双方页面的协调,并且存在一定的兼容性问题。 4. **...
本文将深入探讨如何“完美解决iframe跨域问题”,并介绍其底层的`window.name`转换代理实现。 **一、iframe跨域的基本概念** 1. **什么是iframe**:iframe是一种HTML元素,允许在单个网页中嵌入另一个网页。它通过...
本文将探讨如何通过`<iframe>`结合`POST`请求来实现数据的传递,并展示一种利用`<form>`表单的方式完成这一过程。 #### 二、基础知识 ##### 1. `<iframe>`标签 `<iframe>`标签允许网页开发者在一个页面中嵌入另一...
这可以通过AJAX请求实现,向服务器请求数据,然后将返回的数据插入到`content` div中。 - 为了模拟iframe的动态加载效果,可以在用户点击导航链接时,通过JavaScript改变`content` div的内容,而不是重新加载整个...
表单的`target`属性为空,`method`为`post`,表示提交的数据将通过POST方法发送,`action`指向`AjaxPost.aspx`,即处理下载请求的服务器端页面。 2. **添加隐藏输入字段**:接着,创建了两个隐藏的`<input>`元素,...