曾经看到有人用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提交的...
ajax使用post请求返回页面,直接将返回的页面数据放入iframe标签中,具体实现不在此讨论,本文实现form表单,利用form表单的post请求方式实现提交数据加载iframe
本域和其他域的交互,可以通过iframe、代理、JS创建动态脚本等几种方法来实现,这里有篇文章对几种方法作了简要的介绍。 iframe、JS创建动态脚本这两种方法,需要开发者能控制两个域,两端都要编写相应的代码,...
由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等。 常规的几种解决方法: (1) document.domain+iframe;...假如使用phonegap开发,就可以将请求文件安装在客户端
AJAX Grafana面板 AJAX面板是将外部内容加载到grafana仪表板的一般方法。... GET或POST或iframe 网址: 要求的网址 参数: 将在请求中传递的参数。 这是一个可以访问变量的javascript对象: ctrl控制对象。 屏幕截图
ajax ( { url : 'path/to/asgard' , method : 'POST' , dataType : 'iframe json' , data : { title : 'Lorem ipsum' , description : 'Some data...' } , fileInputs : $ ( 'input[type="file"]' )} ) ....
阻塞的AJAX请求 我们先来证实一下请求的阻塞情况吧。我们使用如下的代码:连续发起三个请求 function simpleRequest(){ var request = new XMLHttpRequest(); request.open(“POST”, “Script.ashx”); request...
首先要知道, ajax无法发送带有文件的post请求所以,所以还是要用同步的方式,但是刷新的时候,我们不要在原来的页面刷新,去一个隐藏的iframe里面刷新,form表单中action正常填写处理文件上传的操作。紧着着的...
浏览器的GET(frame、a)和POST(form)请求具有如下特点: response会交由浏览器处理 response内容可以为二进制文件、字符串等 Ajax请求具有如下特点: response会交由Javascript处理 response内容仅可以为字符串 因此...
– 基于form表单和iframe自己实现ajax请求 1,创建项目 2,settings配置(注册app01,static路径等等这些)及url添加(略过) 3,views视图函数 form的视图收到了在request.FILES中的文件数据。从上述form来的数据...
根据id获得表单数据然后发送ajax请求,获得后台返回数据,处理数据,完美。 但是如果需要上传文件, 请选择文件: <td><input type= class=easyui-filebox id=fileImport name=file value=
4. 使得 Ajax 可缓存 (Make Ajax Cacheable) 5. 延迟载入组件 (Post-load Components) 6. 预载入组件 (Preload Components) 7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements) 8. 切分组件到多个域 (Split ...
js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 要解决...
玩AJAX 一些有用的AJAX技术的演示 ...对POST请求执行相同操作的过程 从CSV文件读取 更新下拉选项作为响应 定期刷新 从服务器获取JSON 解析收到的JSON 修改JSON并更新对服务器的更改 设置请求超时 引入指数回退模式
突然感觉就是这里的问题,研究一下,搞定后其实觉得挺容易的,只是自己知识还是有些欠缺,解决方法如下:阻塞的AJAX请求 我们先来证实一下请求的阻塞情况吧。我们使用如下的代码: 连续发起三个请求 代码如下:...
简单性-维护用于调用Ajax请求的标准jQuery Ajax API签名模型。 没有外部依赖性-纯香草JS。 能够在CORS或PostMessage之间进行选择。 浏览器对PostMessage的支持已充分介绍。 == 安装 从Bower获取 bower install -...
07 recv与recvfrom的区别及基于udp实现ntp服务 08 基于tcp实现远程执行命令 09 基于tcp实现远程执行命令测试结果 10 粘包现象 11 粘包解决方法 第31章 01 上节课复习 02 socketserver实现并发 03 socketserver模块...
发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向。以一个简单的demo做说明: html如下所示,请求的路径action为”upload”,其它的不做任何处理: &...
就好像排队,前面的人忙着忙着突然上厕所了,后面的人阻塞在这里,因此我们就需要让前面的人死到一边去,让后面的人跟进……AJAX就是这个概念,请求还在继续,但我们还可以做其他事。 javascript中实现这个功能的是...
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 ...