Javascript 在第页上创建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

我使用iframe方法进行跨域请求,这是一个函数代码:

<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)上调用。用一个按钮试试看