我使用$ .getJSON加载JSON文件。该文件似乎加载成功(我可以在Firebug中看到它的内容,其标题为" GET http://siteinfo/data/library.json 304未修改")。但是,如果我尝试在成功函数中使用console.log或alert,它不起作用):
$.getJSON('data/library.json', function(data){
alert('HERE');
console.log(data);
$.each(data.library, function(k,v){
console.log(k + "/" + v);
});
});
没有任何警报或console.log正在运行。我能做错什么?
答案 0 :(得分:0)
我认为这是缓存问题,您可以尝试这样做,转移缓存
$.ajax({
dataType: "json",
type: "get",
url: 'data/library.json',
cache:false,
success: function(data){
alert('HERE');
console.log(data);
$.each(data.library, function(k,v){
console.log(k + "/" + v);
});
}
});
答案 1 :(得分:0)
您正在获取304
状态代码。这就是为什么响应没有进入success
函数它进入error
函数的原因,因为error
是一个在请求失败时被调用的函数。
服务器端出了问题。请阅读Why am I getting "(304) Not Modified" error on some links when using HttpWebRequest?了解详情。
在ajax请求中添加此错误处理程序。你可以在ajax中处理错误。这是跟随您的getJSON
$.ajax({
type: "get",
url: "data/library.json",
datatype: "json"
success: function (data, text) {
alert('HERE');
console.log(data);
$.each(data.library, function(k,v){
console.log(k + "/" + v);
});
},
//add this error handler you'll get alert
error: function (request, status, error) {
alert(request.responseText);
}
});