JQuery $.getJSON 加载本地 JSON 文件不起作用
Posted
技术标签:
【中文标题】JQuery $.getJSON 加载本地 JSON 文件不起作用【英文标题】:JQuery $.getJSON load local JSON file not working 【发布时间】:2012-12-02 00:54:55 【问题描述】:我的问题很简单,我有一个名为 new.json 的文件,我正在尝试使用 JQuery 来加载和显示数据。我一直在写 javascript 代码:
$.getJSON("new.json", function(data)
// I have placed alert here previously and realized it doesn't go into here
$.each(data.streetCity, function(i,s)
alert(s);
);
);
new.json 中的数据如下:
"streetCity":
"1":"Abergement-Clemenciat",
"2":"Abergement-de-Varey",
"3":"Amareins"
;
【问题讨论】:
确保new.json
与运行发出ajax 请求的JS 的文件位于同一目录中。我很确定你也不想要;
。
如果没有在本地机器上运行服务器,一些浏览器在不调整设置的情况下不允许使用ajax
可能重复,如果您使用的是 Chrome:***.com/questions/2541949/…
有趣的是,它不仅影响 Chrome,还影响其他浏览器
【参考方案1】:
如果您使用的是 Chrome。因为 Chrome 不允许 xmlhttprequest 请求本地文件。所以 jquery 不能加载你的 new.json
你可以添加
--allow-file-access-from-files
到chrome的启动命令。这可以让 xmlhttprequest 加载本地资源
【讨论】:
我正在做另一个应用程序并提醒我这个问题。我已经尝试过了,是的,它现在可以工作了,谢谢。【参考方案2】:如果您使用的是 jQuery 1.5+,您可以将错误处理程序链接到调用以查看发生了什么:
$.getJSON("new.json", function(data)
// I have placed alert here previously and realized it doesn't go into here
$.each(data.streetCity, function(i,s)
alert(s);
);
).error(function(jqXhr, textStatus, error)
alert("ERROR: " + textStatus + ", " + error);
);
new.json 可能与调用页面位于不同的路径中。此外,如果您的 sn-ps 准确,则不需要脚本中的最后一个花括号或 json 中的最后一个分号。
【讨论】:
【参考方案3】:你的问题是';' (分号)在 JSON 文件中。 JSON 响应不需要分号。删除您的示例应该可以正常工作!
【讨论】:
以上是关于JQuery $.getJSON 加载本地 JSON 文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery $.getJSON() 从 Vuejs 方法中的本地 json 文件获取数据