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

时间:2021-02-20 12:43:32

标签: javascript rest fetch fetch-api

关于这个主题有很多类似的问题,但我在这个 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));

2 个答案:

答案 0 :(得分:-1)

我已经遇到了这个问题。 告诉您的 api 提供者在他们的代码中设置 !is.na()。 这不是您的代码的问题。 冷静.....

答案 1 :(得分:-1)

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