2017-04-24 86 views
-1



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

头definiton:
"header":
{"actionType" : "weather",
"alphabet": "latin",
"version": "9.43.2",
"unicodeHidden": "true"}

我的代码:
CORS非简单标题

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); 

回答

0

您所遇到的问题是由于远程服务器CORS政策不允许跨域请求。

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

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

+0

那应该是服务器端的问题?我不拥有远程服务器。 – ZPA

+1

年服务器端。我做了一个编辑,指出你在正确的方向如果你真的要绕过CORS .. – Thakkie

-1

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