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() 的区别