Jquery getJSON 在 Chrome 中不起作用

Posted

技术标签:

【中文标题】Jquery getJSON 在 Chrome 中不起作用【英文标题】:Jquery getJSON not working in chrome 【发布时间】:2017-09-05 03:11:58 【问题描述】:

我正在尝试使用 jquery 的 getJSON 方法读取本地 json 文件,因此我编写了以下代码来读取,但控制台日志在 firefox 中工作正常并显示输出但在 chrome 中不工作。 在 chrome 上我得到了这个错误:

Request Failed: parsererror, SyntaxError: Unexpected token  in JSON at position 951

这是我写的代码:

   $(document).ready(function()

        $.getJSON('http://localhost/page2/data/cd.json',function(data)
          alert("success");
          console.log(data);
      )
        .fail(function( jqxhr, textStatus, error ) 
            var err = textStatus + ", " + error;
            console.log( "Request Failed: " + err );
        );



    );

我将此文件托管在 Xampp 本地服务器中, 我还检查 JSON 文件以进行验证。 该文件是有效的 JSON 文件。

【问题讨论】:

你能确认你的json是一个有效的,比如"key":"value" 我不确定,您是如何验证您的 json 的,但请您在 jsonlint.com 上查看 是的文件是 vaildate 使用 jsonlint.com 【参考方案1】:

伙计们,我有一些奇怪的事情, 这是我的 json 文件


    "country": 
        "city": 
            "1": "A",
            "2": "B"
        ,
        "cars": 

        
    

这里的汽车段没有任何价值,所以当我在 JSONLint.com 上检查时,我将它保持为空,它说它是有效的 JSON。和 firefox 也没有显示任何错误,但 chrome 会。所以我在汽车中添加了新的键值,如下所示。


    "country": 
        "city": 
            "1": "A",
            "2": "B"
        ,
        "cars": 
            "1": "none"
        
    

它开始在 chrome 中工作。谁能解释为什么它对 chrome 无效?但在 Firefox 中有效。

【讨论】:

【参考方案2】:

JSON 中一定有问题,请在 https://jsonformatter.curiousconcept.com/ 上验证您的 JSON 数据

祝你好运

【讨论】:

【参考方案3】:

删除所有“回车”后,您的测试 json 数据在 chrome 上运行良好 你可以用 JSON.parse('"country": "city": "1": "A", "2": "B" , "cars": ');在 chrome 控制台中。 enter image description here

根据spec,它允许使用空对象作为值。 谢谢, 勇

【讨论】:

如果您的数据很敏感,您可以使用这个 JSON 验证器:datatoolkits.com/json/validation.html,它会在您的浏览器端验证 JSON 数据。

以上是关于Jquery getJSON 在 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:请求 getJSON + SunlightLabs API 帮助

jQuery 中 $.getJSON() 和 $.ajax() 的区别

jQuery之getjson信息展示

jQuery中$.getJSON

在 Flask 应用程序中通过 jquery (getjson) 在字典中发送 Plotly 图表

jQuery .getJSON 返回到数组变量和 json 数组操作