getJson()在chrome中不起作用

时间:2014-02-02 06:37:48

标签: jquery json google-chrome

getJson j-query方法在chrome中工作时无法在所有其他浏览器中使用

以下是我的代码

$(document).ready(function(){

$.getJSON('aptitude14.json',function(data){


     /// my code goes here

};    };

错误我正在使用chrome

enter image description here

我的JSON文件位于同一个文件夹中

1 个答案:

答案 0 :(得分:1)

您正尝试使用file:协议从客户端计算机读取文件,这是不安全的。它在Chrome中不起作用,因为Chrome比其他浏览器更关心安全问题。在我看来,你正在尝试创建一个样本ajax。

您可以执行的操作只是禁用Chrome中的网络安全性,如果只是一个示例测试,请使用此参数在命令行中打开Chrome: - 禁用网络的安全性

如果它不是样本测试,则必须将文件放在可以访问它的服务器上,并使用http ajax调用而不是文件ajax调用。

如果您在网络上遇到此问题,可以使用JSONP或启用CORS来解决此问题。但是在文件协议中,我可以为你提供这样的JSONP调用:

- 首先你的json文件是这样的:

[{
   name : "abc" //...
},
{
   name : "efg" //...
}]

将其更改为(将其包装在函数调用中):

callback([{
   name : "abc" //...
},
{
   name : "efg" //...
}])

然后执行此操作而不是jQuery ajax调用:

window.callback = function(jsonObj){
    //
};
var script = document.createElement('script');
//since this is a fake jsonp call you don't need to add ?callback=callback to url
script.src = 'aptitude14.json';
document.getElementsByTagName('head')[0].appendChild(script);