当我输入此网址时,https://www.codewars.com/api/v1/code-challenges/valid-braces?access_key=apiKey(apiKey是实际密钥的变量),在我的浏览器中,我能够查看JSON中显示的数据。但是,我继续在我的控制台中收到此错误消息:
XMLHttpRequest无法加载https://www.codewars.com/api/v1/code-challenges/valid-braces?access_key=apiKey。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源''因此不允许访问。
这是我目前的要求:
$.ajax({
type: 'GET',
dataType: 'json',
url: 'https://www.codewars.com/api/v1/code-challenges/valid-braces?access_key=apiKey',
success: function(data) {
console.log(data);
},
error: function() {
console.log('failed');
}
});
答案 0 :(得分:0)
API应在响应标头上添加Access-Control-Allow-Origin: http://yourdomain.com
。 *
可用于允许所有域名。
How does Access-Control-Allow-Origin header work?谈论它是如何运作的
更新:使用JSONP可能不是正确的方法,但如果你真的需要试试这个
$.ajax({
url: 'https://www.codewars.com/api/v1/code-challenges/valid-braces?access_key=apiKey&callback=',
dataType: 'JSONP',
type: 'GET',
async: false,
crossDomain: true,
success: function () {}, // don't use this, as this will never get executed
error: function () {}, // don't use this, as this gets executed for each request
complete: function (data) {
//a hack to handle request status
if (data.readyState == '4' && data.status == '200') {
alert('SUCCESS');
}
else {
alert('FAIL');
}
}
});