getJSON 请求失败
Posted
技术标签:
【中文标题】getJSON 请求失败【英文标题】:getJSON request fails 【发布时间】:2014-01-31 23:44:57 【问题描述】:当单击按钮时,我有一个 json 文件,其中包含一些数据要附加到 html 文档中的 div 中:
html:
<div class="json"></div>
<button id="one"></button>
这里是javascript:
function one()
$("#one").click(function()
$.getJSON('one.json',function(data)
alert("success");
)
.done(function() alert('getJSON request succeeded!'); )
.fail(function() alert('getJSON request failed! '); )
.always(function() alert('getJSON request ended!'); );
);
$(document).ready(function()
one();
);
one.json 文件与 js 文件在同一目录下。当我单击按钮时,警报是 “getJSON request failed”...哪里出错了?
【问题讨论】:
html文件是否也在同一个目录下?尝试进行像“/folder/one.json”这样的根相对调用 html&js文件的路径是什么?它们在不同的目录中吗 这不可能回答,可能是任何事情!错误的文件名,错误的路径,没有运行网络服务器,完全是别的东西 或格式错误的 JSON:***.com/questions/6186770/… 【参考方案1】:看看下面的代码是否有效:-
$.getJSON('/YourDirectory/one.json',function(data)
alert("success");
)
【讨论】:
【参考方案2】:如果你的 html 是从 url 打开的
localhost:80/project/test.html
那么json路径就是
localhost:80/project/one.json
所以请确保 html 和 json 在同一个文件夹中。
【讨论】:
【参考方案3】:好吧,要么删除 getJSON 方法中的成功回调,然后使用 .done
.fail
.. 要么只使用成功回调
function one()
$("#one").click(function()
$.getJSON('path/to/one.json')
.done(function() alert('getJSON request succeeded!'); )
.fail(function() alert('getJSON request failed! '); )
.always(function() alert('getJSON request ended!'); );
);
$(document).ready(function()
one();
);
【讨论】:
【参考方案4】:您的 Ajax 请求将在您当前页面的 url 中查找,所以如果您在:
mysite.com/index.html
,它会在mysite.com/one.json
和
mysite.com/category/index.html
,它会看着
mysite.com/category/one.json
如果您使用的是现代浏览器,则可以打开开发者控制台查看发出的确切请求。
【讨论】:
【参考方案5】:$.getJSON()
将 url 作为获取 JSON 的参数,而不是文件路径。
$.getJSON('/one.json', function (data) ... );
或
$.getJSON('http://localhost:1234/one.json', function (data) ... );
获取one.json
文件的网址并粘贴到浏览器地址栏中。如果浏览器返回 JSON 内容,那么您知道您可以在 $.getJSON()` 调用中使用该 url。
【讨论】:
以上是关于getJSON 请求失败的主要内容,如果未能解决你的问题,请参考以下文章
$.getJson 失败,尽管 weatherapp 链接正常工作