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); }); |
- 这次我确实收到了 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/