美元.getJSON不能与本地JSON文件一起工作
$.getJSON not working with local JSON file
我拼命试图获得一个网站的本地构建,以获得JSON文件(也是本地)没有运气。确切的代码在我的服务器上工作得很好,但是一旦本地,就坏了。
我得到JSON jQuery像这样:
$.getJSON(
"lib/js/app.json",
function(data){
$.each(data, function(i,user){
+'<img src="'+user.thumbnail+'"/>
});
}
);
并收到这个控制台错误:
XMLHttpRequest cannot load file://localhost/Users/blakestruhs/new/lib/js/app.json. Origin null is not allowed by Access-Control-Allow-Origin.
我很想知道答案。
我想你使用像chrome这样的Webkit浏览器,对吗?chrome看不到两个本地文件之间的关系。使用Firefox或在web服务器上运行;)
Access-Control-Allow-Origin"在Chrome。为什么?JSON必须通过HTTP协议加载,而不是本地文件协议。
跨域的抱怨是,它会把每个文件作为一个不同的域,所以你需要在web服务器上运行它。
设置本地web服务器或将JSON存储在变量中,并完全跳过getJSON。
Chrome不允许对本地文件进行ajax调用。参考这个
XmlHttpRequest不允许跨域。
如果你需要在本地pc上做演示,将你的web应用程序设置为在本地web服务器上运行,并将json源返回为相同的web应用程序。
这是我能想到的唯一可行的办法。由于安全原因,不能在文件系统上使用Ajax调用。
如果你用IP地址访问调用getJSON的页面那么使用IP地址而不是localhost作为json文件,它们实际上属于同一个域它应该能工作
不使用getJSON,对于支持它的浏览器(包括Chrome),您可以使用FileReader API。
var r = new FileReader();
r.onload = function(e) {
var obj = JSON.parse(e.target.result);
// do what you will with the object
}
// Start the async read
r.readAsText(file);
注意file变量需要是file或Blob对象。最简单的方法是让用户从文件输入元素中选择它。如果您需要在不询问用户的情况下读取文件,您可以检查:https://stackoverflow.com/a/30896068/2476389
尝试将bin设置为公共,并将url提供给getJSON调用
$.getJSON("https://api.jsonbin.io/b/58f9f835a3de5638", function(data) {}
您应该使用http://localhost
而不是file://localhost
;
$.getJSON(
"http://localhost/Users/blakestruhs/new/lib/js/app.json",
function(data){
$.each(data, function(i,user){
+'<img src="'+user.thumbnail+'"/>
});
}
);
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 不显示带有本地json文件数据的谷歌地图脚本
- 可以't使用Appcelerator将JSON文件解析为JavaScript中的TableView
- 加载两个具有相同父密钥名称的json文件
- 使用JSON文件中的变量(字符串)填充文本区域
- 动态显示JSON文件内容
- 正在尝试将JSON文件放入JS数组
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- 单击按钮更改加载到表中的JSON文件
- 处理一个JSON文件;完全相同的副本不是
- 在Javascript中加载JSON文件
- 使用Bootstrap将JSON文件加载到表中
- Angular 2:在本地.json文件上找不到文件
- JSON-从浏览器向外部服务器发送哪些http头JSON文件
- 如何获取d3.js中json文件中具有特定值的总行数
- 如何在dojo应用程序构建概要文件中加载json文件
- jQuery UI使用json文件自动完成
- 通过Azure存储以HTML形式获取JSON文件
- ngResource没有'从JSON文件解析HTML时不起作用