【发布时间】:2021-12-13 11:05:18
【问题描述】:
我们正在向我们的一位在线分销商提出 API 请求。 但是,我们得到了一个 CORS 错误。
CORS 政策已阻止从源“http://www.im-cmp.ch”访问“https://api.cloud.im/marketplace/eu/products”处的 XMLHttpRequest:响应预检请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我们在 Postman 中完成了请求,并且成功了。我尝试将 requestHeaders 设置为与 Postman 中设置的完全相同的方式(包括隐藏的标头),但是,由于无法设置隐藏的标头,因此出现错误。
拒绝设置不安全的标头“Host”
这是客户端问题还是服务器问题?我可能错过了 requestHeader 吗?
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.cloud.im/marketplace/eu/products");
xhr.setRequestHeader("X-Subscription-Key", "OUR PERSONAL SUBSCRIPTION KEY");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "OUR BEARER TOKEN");
// xhr.setRequestHeader("Host", "http://www.im-cmp.ch/");
xhr.setRequestHeader("accept", "*/*");
// xhr.setRequestHeader("Accept-Encoding", "gzip, deflate, br");
// xhr.setRequestHeader("Connection", "keep-alive");
xhr.send();
【问题讨论】:
标签: javascript api xmlhttprequest cors