关于 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);

    });
});

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

  • 您在控制台中收到任何错误吗?
  • 什么都没有 :( 我看到的只是 “GET site/data/library.json \\\\t 304 Not Modified \\\\t\\\\t189ms”


你得到 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);
    }
});

  • 这次我确实收到了 Json 内容的警报。但是为什么没有成功呢?
  • 对不起,这是什么意思,我该如何改变?
  • 将检查您发送给我的链接。谢谢。
  • 原来这个问题很容易解决。我使用您发送给我的代码来获取错误,结果发现 Dreamweaver 在 JSON 文件的第一行添加了注释。我一删除它,就执行了成功功能。现在一切正常。谢谢!!


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

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

来源:https://www.codenong.com/31970399/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?