getJson()不能用于chrome

当getJson j-query方法在所有其他浏览器中工作时,它在chrome中不起作用

以下是我的代码

$(document).ready(function(){ $.getJSON('aptitude14.json',function(data){ /// my code goes here 

}; };

我得到的错误是铬

在此处输入图像描述

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

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

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

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

如果您在Web上遇到此问题,则可以使用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);