【发布时间】:2014-12-11 04:42:49
【问题描述】:
我有一个从外部网站加载的 JSON 脚本。以最简单的形式,代码是这样的(并且可以工作):
jQuery.getJSON("http://adressesok.posten.no/api/v1/postal_codes.json?postal_code=" + document.querySelector("input").value + "&callback=?",
function(data){
document.querySelector("output").textContent = data.postal_codes[0].city;
});
但是,如果 jQuery 不重要,网站所有者不想要它,所以我将 .getJSON 重新编码为 request = new XMLHttpRequest(); 模型:
request = new XMLHttpRequest();
request.open("GET", "http://adressesok.posten.no/api/v1/postal_codes.json?postal_code=" + document.querySelector("input").value + "&callback=?", true);
request.onload = function() {
var data = JSON.parse(request.responseText);
document.querySelector("output").textContent = data.postal_codes[0].city;
};
request.onerror = function() { /* this gets called every time */ };
我已经多次修改我的代码,一遍又一遍地阅读文档,但 .onerror 函数是唯一始终显示的函数。这是控制台:
在挪威语中说这个脚本请求了 CORS,它在 Access-Control-Allow-Origin 的头部找不到源,并且 XMLHttpRequest 有网络错误,并说“无法访问”。
发生这种情况的原因可能有多种:
1:新代码有问题
2:.getJSON jQuery 函数(黑客?)中有一些东西可以防止错误发生
3:新代码中有一些我忘记添加的重要内容
4:我的浏览器有问题(目前是 IE 11)
5:还有别的吗?
在这方面有一些帮助会很可爱。
【问题讨论】:
标签: javascript jquery ajax json