【发布时间】:2018-03-28 20:38:50
【问题描述】:
我正在尝试将 webUntis'(docs) API 用于学校项目。现在我只是尝试建立与 API 的任何类型的连接。
var result;
const url = 'https://api.webuntis.dk/api/status';
var xhr = new XMLHttpRequest();
xhr.open('GET',url, true);
xhr.setRequestHeader('Access-Control-Allow-Origin','*');
xhr.setRequestHeader('Content-type','application/json');
xhr.setRequestHeader('Access-Control-Allow-Methods','GET');
xhr.setRequestHeader('X-API-KEY', '/*API KEY*/');
xhr.send();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
result = xhr.responseType;
console.log(result);
}
};
此代码产生以下错误消息:
跨域请求被阻止:同源策略禁止 在https://api.webuntis.dk/api/status 读取外部资源 (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。
如何解决这个问题?也许我的 API 密钥有误?
免责声明:错误消息是从德语翻译过来的。
【问题讨论】:
-
看起来你不是在请求自己的服务器,而是直接向
https://api.webuntis.dk/api/status创建路由,请求本地服务器,然后将请求服务器发送到服务器 -
首先,标头
Access-Control-Allow-Origin应该在请求的文件头上,而不是在你的请求中。
标签: javascript http cors