关于 javascript:jquery getJSON 函数未运行

jquery getJSON function not running

我正在使用 $.getJSON 加载 JSON 文件。该文件似乎已成功加载(我可以在 Firebug 中的标题下方看到其内容,标题为"GET http://siteinfo/data/library.json 304 not modified")。但是,如果我尝试在成功函数中使用 console.log 或 alert 则不起作用):

1
2
3
4
5
6
7
8
$.getJSON('data/library.json', function(data){
    alert('HERE');
    console.log(data);
    $.each(data.library, function(k,v){
        console.log(k +"/" + v);

    });
});

所有警报或控制台日志都不起作用。我可能做错了什么?


你得到 304 状态码。这就是为什么响应没有进入 success 函数它转到 error 函数的原因,因为 error 是一个在请求失败时要调用的函数。

服务器端有问题。阅读为什么我在使用 HttpWebRequest 时在某些链接上收到"(304)未修改"错误?了解更多详情。

在 ajax 请求中添加这个错误处理程序。您可以在 ajax 中处理错误。这是与您的 getJSON

等效的以下功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$.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);
    }
});


我认为这是缓存的问题,您可以尝试像这样执行您的请求,关闭缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
 $.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);
        });
      }
    });