我在桌面上有简单的JSON文件(map.json)..在localHost上运行完美(见截图)
我尝试了很多解决方案来使用$ .ajax访问它但没有获得成功。我也尝试使用$ .getJSON ..仍然没有运气
这是我的小提琴:
我的Json输出:
我的代码示例
var url = 'http://localhost/map.json';
$.getJSON("http://localhost/map.json", {},
function (data) {
$.each(data.items, doSomething1);
alert('success')
});
$.ajax({
type: 'GET',
url: url,
async: false,
contentType: "application/json",
dataType: 'json',
success: function (data) {
alert(this.url);
//console.log(data);
},
Chrome控制台说.." XMLHttpRequest无法加载http://localhost/map.json。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://fiddle.jshell.net'因此不允许访问。"
我搜索了这篇文章
Why am I seeing an "origin is not allowed by Access-Control-Allow-Origin" error here?
它说使用jsonop和dataype ..我在我的小提琴中使用它。仍然是同样的错误..
和这篇文章
2。$.getJSON not working with local JSON file
解决方案说
2.1使用Firefox或在网络服务器上运行;) - 不工作
2.2 add" Access-Control-Allow-Origin"不允许使用Origin null。在Chrome中。 -
---我做过这篇文章
https://in.answers.yahoo.com/question/index?qid=20110807065538AAs4Wog-->
不允许我添加Chrome快捷键
我尝试过其他一些事情:
1。retrieve json file from server
解决方案说使用$ .getJSON ..我试过仍然不工作(例如在上部小提琴链接) 2. $.getJSON not working with local JSON file
解决方案说使用数据类型作为' jsonop' ..我也试过......没有工作 这里是jsfiddle for jsonop
http://jsfiddle.net/yvzSL/905/
解决方案说在url中添加带参数的回调..我的网址没有这样的
我还可以搜索更多内容?
修改:终于找到了一个删除了我的错误的扩展程序。
答案 0 :(得分:1)
您已找到答案,但您还不知道:您必须设置网络服务器。
您的浏览器无法理解网址file:///C:/Users/neeraj/Desktop/map.json
。
看看适合您系统的服务器......或者如果您有个人网站,请将您的json文件放在该服务器上并将该URL指向该文件。
此外,请阅读您在控制台中获得的错误。他们往往非常清楚发生了什么 - 我的Chrome会出现以下错误Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource
。
答案 1 :(得分:0)
找到一个突破(至少在JSFiddle级别上)..
将此扩展程序添加到Chrome解析我的错误