曾经看到有人用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.οnlοad=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>