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

问题描述 投票:0回答:2

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

显然,状态代码

401
被打印到控制台,但错误处理程序或
.catch()
语句仅接收抛出的错误对象。

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

javascript cors http-status-codes preflight
2个回答
5
投票

不,不是。

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

出于这个原因,我刚刚完成了 Web API 的设置,始终为 OPTIONS 请求返回 200 OK 状态。


1
投票

不幸的是没有。所有

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

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

© www.soinside.com 2019 - 2024. All rights reserved.