为什么我不能在 Request 对象上设置一些标头?

-1 javascript request-headers fetch-api

我正在尝试请求一个需要使用令牌进行身份验证的 REST API。构造 Request 对象时,一些标头会消失。为什么我无法设置授权标头?

let http_headers = {
        "Content-type": "application/json",
        'Authorization': 'Token token='+my_token,
        'Accept': 'Application/json'
    };

let url = this.base_url + '/api/v1/test';
let init =  {
            method: "POST",
            headers: new Headers(http_headers),
            mode: 'no-cors',
            credentials: 'omit' // I try that, but it doesn't seem to have effect
        };
let req = new Request( url, init );
console.log(req.headers.get("Accept")); // Application/json
console.log(req.headers.get("Authorization")); // null, why ?
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 5

请参阅模式文档

\n\n
\n

no-cors\xe2\x80\x94防止方法为 HEAD、GET 或 POST 以外的任何内容,并且防止标头为 simple headers 以外的任何内容。如果任何 ServiceWorkers 拦截这些请求,则它们不得添加或覆盖任何标头(简单标头除外)。此外,JavaScript 可能无法访问结果响应的任何属性。这确保了 ServiceWorkers 不会影响 Web 的语义,并防止因跨域泄露数据而引起的安全和隐私问题。

\n
\n\n

将模式设置为same-origincors以允许设置凭据。

\n