jquery getJSON函数没有运行

时间:2015-08-12 16:10:08

标签: javascript jquery json

我使用$ .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正在运行。我能做错什么?

2 个答案:

答案 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);
    }
});