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 请求失败的主要内容,如果未能解决你的问题,请参考以下文章

jQuery $.getJSON() 失败

$.getJSON的同步与异步请求

$.getJson 失败,尽管 weatherapp 链接正常工作

jQuery:请求 getJSON + SunlightLabs API 帮助

$.getJSON请求

$.getJSON 请求在按钮单击时不起作用