【问题标题】:CORS non-simple headers [duplicate]CORS非简单标头[重复]
【发布时间】:2017-04-24 16:23:48
【问题描述】:



首先让我解释一下我是 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);

【问题讨论】:

    标签: javascript cors httprequest


    【解决方案1】:

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

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

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

    【讨论】:

    • 那应该是服务器端的问题吧?我不拥有远程服务器。
    • 服务器端的年份。我做了一个编辑来为你指明正确的方向如果你真的必须绕过 CORS..
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 2023-04-01
      • 2021-06-25
      • 1970-01-01
      • 2020-11-05
      • 2018-12-02
      • 2016-04-15
      • 2017-03-21
      • 2017-01-09
      相关资源
      最近更新 更多