如何获取 CORS http 预检请求失败的状态代码

How to get the status code of a CORS http failed preflight requets

是否可以获取失败的预检请求的错误代码,以便打印有意义的错误消息? (或者无论代码如何,是否有为所有失败的预检请求打印静态错误的习惯?)

显然,状态代码 401 被打印到控制台,但错误处理程序或 .catch() 语句仅接收抛出的错误 object。

如果我删除触发预检的 header,我就可以自己处理响应并且可以提取状态代码。

//另请注意,第一个屏幕截图中返回的代码 401 是错误的。但那是 another question..

不,不是。

如果预检响应的状态代码不是 200,则同源策略将阻止从中提取有关响应的任何信息。

出于这个原因,我刚刚完成了 web API 设置,以始终 return OPTIONS 请求的 200 OK 状态。

不幸的是没有。所有 fetch returns 都是带有消息 "Failed to fetch".

TypeError
> fetch('https://stackexchange.com/404').then(x => console.info(x), error => console.error(error))
× TypeError: Failed to fetch

我尝试手动发送另一个预检请求并获取它的响应代码。

> fetch('https://stackexchange.com/404', { method: 'OPTIONS' }).then(x => console.info(x), error => console.error(error))
× TypeError: Failed to fetch

但这只会触发另一次预检,但在实际失败的请求中仍然不允许我。