【问题标题】:How can I connect with api when my xmlhttprequest is blocked by CORS [duplicate]当我的 xmlhttprequest 被 CORS 阻止时,我如何连接 api [重复]
【发布时间】:2019-10-04 16:07:10
【问题描述】:

我正在使用 XMLHttpRequest() 与 API 连接,并且在控制台中出现关于被 CORS 策略阻止的错误。我的网址使用 https。如何连接该 API?我需要一些 API-KEY 或类似的东西吗?

我为 chrome 安装了 Allow-Control-Allow-Origin 扩展。没用

例子:

  function UserAction() {
    var xmlhttp = new XMLHttpRequest();
 // xmlhttp.setRequestHeader('Accept', 'application/json');
    xmlhttp.withCredentials = true;
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
            var myObj = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myObj.high;
        }
    };
    xmlhttp.open("GET", "https://sinsmbe1.insepa.net:20106/m3api-rest/execute/CRS610MI/LstByNumber;maxrecs=100;returncols=CUNO,STAT?CUNO=10000", true);
    xmlhttp.send();
  }

我有 3 条来自控制台的信息。

警告:

用于加载资源的连接 https://sinsmbe1.insepa.net:20106 使用 TLS 1.0 或 TLS 1.1,它们是 已弃用,将来将被禁用。一旦禁用,用户 将被阻止加载这些资源。服务器应该 启用 TLS 1.2 或更高版本。看 https://www.chromestatus.com/feature/5654791610957824 了解更多 信息。

错误:

访问 XMLHttpRequest 在 'https://sinsmbe1.insepa.net:20106/m3api-rest/execute/CRS610MI/LstByNumber;maxrecs=100;returncols=CUNO,STAT?CUNO=10000' CORS 策略已阻止来自原点“null”:响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。

警告:

跨域读取阻塞 (CORB) 阻止了跨域响应 https://sinsmbe1.insepa.net:20106/m3api-rest/execute/CRS610MI/LstByNumber;maxrecs=100;returncols=CUNO,STAT?CUNO=10000 MIME 类型为 application/vnd.sun.wadl+xml。看 https://www.chromestatus.com/feature/5629709824032768 了解更多 详情。

【问题讨论】:

标签: javascript api cors xmlhttprequest blocked


【解决方案1】:

您必须在 api 的开头添加这些标头:

res.header("Access-Control-Allow-Origin","*");
 res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept");

【讨论】:

  • var xmlhttp = new XMLHttpRequest(); xmlhttp.setRequestHeader("Access-Control-Allow-Origin","*"); xmlhttp.setRequestHeader("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept"); 类似上面的东西?
  • 你在哪里执行代码?
  • @omlette — 否。API 必须在响应中添加标头。您不能授予自己的代码使用访问者浏览器访问任意网站的权限。
猜你喜欢
  • 2019-10-18
  • 2019-12-13
  • 2019-10-31
  • 2018-02-26
  • 2019-12-16
  • 2022-01-01
  • 2021-01-06
  • 2019-11-03
  • 2020-05-30
相关资源
最近更新 更多