-2

我知道这个问题被问了很多次,但是在阅读了答案并尝试了一些解决方案之后,我的代码仍然无法正常工作。这是我的工作文件:

my_app
   -index.html
   -task1
       -index.html

在 my_app/index.html 中,我声明了一个数组,我必须将其发送到 task1/index.html

testArray =[1, 2, 3];

    var myUrl= "task1/index.html";
          $.ajax({
                type: "POST",
                url: myUrl,
                dataType: "json",
                data: JSON.stringify({images:testArray}),
                success: function (data) {
                console.log('success');
                    alert(data);
                }
            });
             window.open(myUrl); 
//this code is called when a radio button is checked

指向正确 url 的新窗口打开,但未发送 testArray。我有 2 个错误:

1/ Origin null is not allowed by Access-Control-Allow-Origin.
2/the variable images is not defined when I try to access it from task1/index.html

对于第一个错误,我读到这可能是由于 Google Chrome 在将 Ajax 与本地资源一起使用时的限制造成的。正如这里所建议的那样Origin null is not allowed by Access-Control-Allow-Origin,我补充说

--allow-file-access-from-files

在谷歌浏览器属性中。但是路径不被接受(我有一个弹出窗口“路径不正确”)。

奇怪的是我试图用 FireFox 运行代码,我仍然有错误 2

我的 Post Ajax 请求中是否缺少任何内容?是否可以使用 Ajax 在 2 个 html 文件之间发送数据?(我这里没有任何客户端/服务器端应用程序)

谢谢!

4

1 回答 1

0

如果您需要将数据发送到您将要打开的新窗口,请改用 GET 并在 url 上传递参数。

但是,您可以先创建一个空窗口,然后执行 ajax 并使用返回的内容来填充新窗口。

这是一个打开窗口并用 POST 调用的结果填充它的示例小提琴:http: //jsfiddle.net/bxhgr/

var mywindow = window.open();
testArray = [1, 2, 3];

var myUrl = "/echo/json/";
$.ajax({
    type: "POST",
    url: myUrl,
    dataType: "json",
    data: {
        json: JSON.stringify({
            images: testArray
        })
    },
    success: function (data) {
        console.log('success');
        //alert(data);
        mywindow.document.body.innerHTML = '<pre>' + data.images + '</pre>';
    }
});
于 2013-08-13T18:27:32.820 回答