我正在尝试从本地主机托管的站点向第三方REST API发出POST请求。这是发出请求的代码
var url = "https://[externaldomain]/api/custom_resources/resources";
var data = {
"data": {
[some data]
}
};
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (this.readyState==4)
{
console.log(this.response);
console.log(this.responseText);
}
}
request.open('POST', url, true);
request.setRequestHeader("Authorization", "Bearer " + token);
request.setRequestHeader('Content-type', 'application/json');
request.send(JSON.stringify(data));
如果我在Chrome中使用它,我会得到
选项https://[mydomain].zendesk.com/api/custom_resources/resources 404(未找到) 初始化@ test.js:57 onclick @ test.html:28 test.html:1无法加载https://[mydomain].zendesk.com/api/custom_resources/resources:对预检请求的响应未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问来源“ http://localhost”。
通过下载This extension,我可以将错误消息更改为
Blockquote test.js:57选项https://[mydomain].zendesk.com/api/custom_resources/resources 404(未找到) 初始化@ test.js:57 onclick @ test.html:28 test.html:1无法加载https://[mydomain].zendesk.com/api/custom_resources/resources:飞行前响应没有HTTP正常状态。
但是,我似乎无法通过。据我了解,系统在发出POST之前正在发送OPTIONS请求,但未收到答案。有什么我可以改变的方法来使它起作用吗?
一些附加说明:
谢谢