为什么在调用另一个域时设置 X-Requested-With header 时浏览器不会抛出错误?

Why is the browser not throwing an error when setting X-Requested-With header when calling another domain?

我是 运行 我在 localhost 上的服务器。我尝试使用 fetch 发送 http 请求,cors 模式设置为 no-cors。我将请求发送到 google.com 域中的随机资源。此请求将 X-Requested-With header 设置为某个自定义值,保存 "Foo"。此请求成功通过并在浏览器上返回了 404 NOT FOUND http 状态代码。

但我的期望是根本不应该发送请求,浏览器应该抛出一个错误,因为在下面的 header 中允许设置 cross-domain

Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type

我的预期错了吗?

来自the specification

Otherwise, if the context object’s guard is "request-no-cors" and name/value is not a no-CORS-safelisted request-header, return.

尝试设置 X-Requested-With 无提示地失败,请求 没有 header