在javascript中将数据从html页面传递到另一个页面

时间:2013-08-13 18:24:48

标签: javascript ajax post local

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

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
Google Chrome中的

属性。但路径未被接受(我有一个弹出窗口“路径不正确”)。

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

但是,您可以先创建一个空窗口,然后执行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>';
    }
});