getJson j-query方法在chrome中工作时无法在所有其他浏览器中使用
以下是我的代码
$(document).ready(function(){
$.getJSON('aptitude14.json',function(data){
/// my code goes here
}; };
错误我正在使用chrome
我的JSON文件位于同一个文件夹中
答案 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);