fetch api - 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态 [重复]

问题描述 投票:0回答:2

围绕这个主题有很多类似的问题,但我找不到这个 fetch api 请求中缺少的内容。有人能帮我克服这个错误吗?如何在 fetch api 请求中设置 http 状态正常。我知道我们需要为 OPTIONS 方法设置此项,但不确定如何设置。

我也尝试添加

no-cors
模式,但失败并显示代码 415

当我尝试使用 Postman 时,它工作正常,但无法获取 api 请求

错误:

from origin 'https://example.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status 

var myHeaders2 = new Headers();
myHeaders2.append("Content-Type", "application/json");
myHeaders2.append("Accept", "application/json");
myHeaders2.append('Acces-Control-Allow-Origin', 'https://example.com');
myHeaders2.append('Access-Control-Allow-Methods', "DELETE, POST, GET, OPTIONS");
myHeaders2.append("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, Origin, X-Auth-Token");
myHeaders2.append("Access-Control-Max-Age", "86400");
// myHeaders2.append("status", "200");


let obj = {};
obj.file_name = 'test1.txt';
obj.file_content = objJsonB64;

var raw = JSON.stringify(obj);

var uploadReqOptions = {
    method: 'POST',
    headers: myHeaders2,
    body: raw,
    redirect: 'follow'
};

fetch("https://destinationxyz.com", uploadReqOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));
javascript fetch-api
2个回答
-2
投票

安装 chrome 扩展“CORS unblock”。 该问题是由您的浏览器阻止请求引起的


-3
投票

我已经面临这个问题了。 告诉您的 API 提供商在其代码中设置

Acces-Control-Allow-Origin
。 这不是你的代码的问题。 冷静一下......

© www.soinside.com 2019 - 2024. All rights reserved.