网页上的javascript功能需要采用以下格式的数据:
// Javascript
var data = [
{"AKey" : "AVal", "BKey" : "BVal"},
{"AKey" : "AVal", "BKey" : "BVal"},
{"AKey" : "AVal", "BKey" : "BVal"}
];
目前,这个变量在javascript文件中是硬编码的,一切正常。 在第二步中,我想通过jQuery的ajax功能从服务器请求数据而不是使用硬编码变量来改进它,因为直到现在,数据都是静态的。
所以我在我的服务器上放了一个文本文件,它包含:
// textfile on server
[
{"AKey" : "AVal", "BKey" : "BVal"},
{"AKey" : "AVal", "BKey" : "BVal"},
{"AKey" : "AVal", "BKey" : "BVal"}
];
除此之外,还有一个PHP脚本。 PHP脚本将其内容类型设置为application / json并打印文本文件。
在Javascript中,我尝试过这样的事情:
var jqxhr = $.getJSON("http://www.myserver.com/output.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
jqxhr.complete(function(){ alert("second complete"); });
不幸的是,我只收到“错误”警告和两个完整警报。
所以我有两个问题:
var data = [ { "A" : "B:}, { "A" : "B:}];
的变量/数据。这个查询的结果(如果它可以工作..)格式相同吗?唯一的要求是我需要成功和错误处理程序,只是成功处理程序是不够的。
谢谢
答案 0 :(得分:1)
JSON是JavaScript的一个子集。虽然这个
[
{"AKey" : "AVal". "BKey" : "BVal"},
{"AKey" : "AVal". "BKey" : "BVal"},
{"AKey" : "AVal". "BKey" : "BVal"}
];
可能是Javascript,分号表示它是而不是 JSON。此外,期间需要用逗号代替。
答案 1 :(得分:1)
您通过跨域访问它并违反了Same origin policy。
follow this link to learn how to overcome this.
看看我对这个问题的回答 $.ajax call working fine in IE8 and Doesn't work in firefox and chrome browsers
并且您的JSON应采用以下格式。
[
{"AKey" : "AVal", "BKey" : "BVal"},
{"AKey" : "AVal","BKey" : "BVal"},
{"AKey" : "AVal", "BKey" : "BVal"}
];