带有“凭据:true”的 fetch() 在 Chrome 中的 Tampermonkey 用户脚本中失败

The*_*gth 5 fetch userscripts cors tampermonkey

Cookie发送时-header缺失credentials: true-fetch在Tampermonkey userscript -request在Chrome即使CORS配置是否正确。问题是什么?

附加信息:

相同的代码在 Firefox 中的 Tampermonkey 用户脚本中按预期工作。

我在跨域服务器上有一个 API 端点,该端点已正确配置为接受fetch带有credentials: true.

这是我当前的代码:

fetch('https://example.com/api/my/endpoint', {
    credentials: 'include',
    headers: {
        'Content-Type': 'application/json'
    }
});
Run Code Online (Sandbox Code Playgroud)

OPTIONS-preflight-请求example.com被成功返回制成具有以下标题:

access-control-allow-origin: https://requestingsite.com
allow: GET, OPTIONS
access-control-allow-methods: GET, OPTIONS
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Cookie, Authorization, Pragma
access-control-allow-credentials: true
Run Code Online (Sandbox Code Playgroud)

之后,发出GET-request to example.com。它在 Firefox 中按预期工作 - 它Cookie在请求中发送必要的-header。

但是,它在 Chrome 中不起作用。Chrome 中的请求包含必要的Origin-header 并匹配access-control-allow-origin服务器返回的标头中的内容。