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

时间:2011-10-28 04:49:32

标签: 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");                                                
}
};

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

1 个答案:

答案 0 :(得分:2)

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