【发布时间】:2018-04-11 03:58:15
【问题描述】:
我正在尝试从 Flickr 获取 JSON 结果列表,而纯 js XMLHttpRequest 不起作用。
这里是没有回调且不工作的 ajax 调用示例
var url = "https://api.flickr.com/services/feeds/photos_public.gne?tags=rat&format=json&nojsoncallback=1";
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
console.log(xhr.status);
console.log(xhr.readyState);
if (xhr.readyState == 4 && xhr.status == 200) {
var data = JSON.parse(xhr.responseText);
console.log(data);
}else {
console.log("error");
}
}
xhr.open("GET", url)
xhr.send();
我收到了错误 -
js:1 Access to XMLHttpRequest at 'https://api.flickr.com/services/feeds/photos_public.gne?tags=rat&format=json&nojsoncallback=1' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
你能告诉我问题出在哪里吗?
【问题讨论】:
-
您是否检查了错误响应并尝试解决它?
-
嗯,首先是
new XMLHttpRequest()。 -
@krger,我加载失败api.flickr.com/services/feeds/…?:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null.jsbin.com' 不允许访问。但是为什么我没有得到与 getJSON 相同的错误。
-
@Andy 使用新的 XMLHttpRequest(),它给出了同样的错误。
-
您是否注册了 API 密钥?我认为您需要其中之一。
标签: javascript json ajax xmlhttprequest flickr