CORS非简单标头

时间:2017-04-24 16:23:48

标签: javascript cors httprequest



首先让我解释一下我是IT学生,我对CORS有疑问。
我必须调用另一个域上的远程服务,我得到了指定的headerdata结构(见下文)。我已经实现了XMLHttpRequest(参见下文),但是有一个错误无法修复(在谷歌搜索几天后):No 'Access-Control-Allow-Origin' header is present on the requested resource.
这是服务器端问题,还是我的标题中有错误?
提前致谢!

标题定义:
"header":
{"actionType" : "weather",
"alphabet": "latin",
"version": "9.43.2",
"unicodeHidden": "true"}

我的代码:

var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://remote-site.net/service', true);
xhr.setRequestHeader('actionType', 'weather');
xhr.setRequestHeader('alphabet', 'latin');
xhr.setRequestHeader('version', '9.43.2');
xhr.setRequestHeader('unicodeHidden', "true");
xhr.onload = function () {
  alert("OK");
 };
 xhr.onerror = function () {
    alert("error");
  };
 xhr.send(dataToSend);

2 个答案:

答案 0 :(得分:0)

您遇到的问题是因为远程服务器CORS策略不允许跨域请求。

远程服务器必须发送Access-Control-Allow-Origin: *或其他Access-Control-Allow-Origin标头以允许远程请求。

如果您无法更改其他域的代码,解决此问题的唯一方法是代理请求。这意味着您必须创建一个简单的PHP脚本,作为WebApp和远程服务器之间的中间人。

答案 1 :(得分:-1)

我已经为Chrome安装了POSTMAN插件并解决了我的问题。