【问题标题】:getJSON request failsgetJSON 请求失败
【发布时间】: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:stackoverflow.com/questions/6186770/…

标签: jquery json


【解决方案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。

          【讨论】:

            猜你喜欢
            • 2014-07-03
            • 1970-01-01
            • 2014-03-30
            • 2013-08-10
            • 1970-01-01
            • 1970-01-01
            • 2018-09-30
            • 1970-01-01
            • 2017-04-02
            相关资源
            最近更新 更多