如何使用iframe(跨域)发布请求?

xuz*_*ian 5 javascript iframe cross-domain

我想做一个帖子跨域请求,我使用一个以iframe为目标的表单来提交请求.

var iframe = document.createElement("iframe");

var uniqueString = "CHANGE_THIS_TO_SOME_UNIQUE_STRING";

document.body.appendChild(iframe);

iframe.style.display = "none";

iframe.contentWindow.name = uniqueString;


var form = document.createElement("form");

form.target = uniqueString;

form.action = myUrl;

form.method = "POST";


// repeat for each parameter

var input = document.createElement("input");

input.type = "hidden";

input.name = "setting";

input.value = params;

form.appendChild(input);

document.body.appendChild(form);

form.submit();

iframe.onload = iframe.onreadystatechange = function(){

if(this.readyState && this.readyState!="complete") return ;

else{                                                                            
       alert("haha");                                                
}
};
Run Code Online (Sandbox Code Playgroud)

Chrome显示iframe已从远程网址接收返回的数据,但我无法使用Javascript获取iframe内容?你们有什么建议或解决方案吗?

小智 2

您应该使用 GUID 将参数添加到表单。服务器应在会话中保存带有特定答案的 GUID。之后,您发送表单,使用您在服务器中使用的 GUID 通过 JSONP 调用服务器,服务器应该返回它在会话中保存的 asnwers。