Javascript 在第页上创建iframe:
我使用iframe方法进行跨域请求,这是一个函数代码:Javascript 在第页上创建iframe:,javascript,iframe,Javascript,Iframe,我使用iframe方法进行跨域请求,这是一个函数代码: <script> function postIframe(target_url, method, params) { //Add iframe var iframe = document.createElement("iframe"); document.body.appendChild(iframe); iframe.style.display
<script>
function postIframe(target_url, method, params)
{
//Add iframe
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.style.display = "none";
//Give the frame a name
var frame_name = "frame_name" + (new Date).getTime();
iframe.contentWindow.name = frame_name;
//build the form
var form = document.createElement("form");
form.target = frame_name;
form.action = target_url;
form.method = method;
//loop through all parameters
for (var key in params)
{
if (params.hasOwnProperty(key))
{
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = params[key];
//form.appendChild(input);
}
}
document.body.appendChild(form);
form.submit();
}
var target_url = 'http://domain.com/test/example.php';
var method = 'POST';
var obj = { var2domain: "ya", var2domainval: "baz" };
postIframe(target_url, method, obj);
</script>
函数框架(目标url、方法、参数)
{
//添加iframe
var iframe=document.createElement(“iframe”);
document.body.appendChild(iframe);
iframe.style.display=“无”;
//给框架起个名字
var frame_name=“frame_name”+(新日期).getTime();
iframe.contentWindow.name=框架名称;
//构建表单
var form=document.createElement(“表单”);
form.target=帧名称;
form.action=target\u url;
form.method=方法;
//循环遍历所有参数
for(参数中的变量键)
{
if(参数hasOwnProperty(键))
{
var输入=document.createElement(“输入”);
input.type=“隐藏”;
input.name=key;
input.value=参数[键];
//表单。追加子项(输入);
}
}
文件.正文.附件(表格);
表单提交();
}
var target_url='1〕http://domain.com/test/example.php';
var方法='POST';
var obj={var2domain:“ya”,var2domainval:“baz”};
PostFrame(目标url、方法、obj);
我在控制台中收到一条消息:“UncaughtTypeError:无法调用null的'appendChild'方法”,我怎么了 跨域-我推荐JSONP
看起来没有创建iFrame。此脚本是否托管在客户端 您使用了错误的方法。即使您解决了异常,代码也不会工作。除非从需要发送请求的服务器加载iframe,否则您仍然会遇到跨域问题。JSONP是一种替代方案,但它不支持POST调用(我希望)。是的,它托管在客户端,这是一个问题吗?好的,如果它在客户端,那么问题是函数调用太早-应该在document.load或$(document.ready)上调用。用一个按钮试试看