我知道这个问题被多次询问,但在阅读了答案并尝试了一些解决方案之后,我的代码仍然无效。 以下是我的工作文件:
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文件之间发送数据?(我这里没有任何客户端/服务器端应用程序)
谢谢!
答案 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>';
}
});