六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 46|回复: 0

Iframe实现的ajax如何实现POST请求?

[复制链接]

升级  55.67%

111

主题

111

主题

111

主题

举人

Rank: 3Rank: 3

积分
367
 楼主| 发表于 2013-1-23 03:00:58 | 显示全部楼层 |阅读模式
     曾经看到有人用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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表