使用 fetch 时将不同的失败分开
Separate different failures when using fetch
我正在使用 fetch
向我的应用程序后端发出请求,该应用程序使用 OAuth 身份验证提供程序。
当会话过期时,提取请求被重定向到身份验证提供程序,导致它因 CORS 错误(我无法更改)而失败。
在这种情况下,fetch
抛出 TypeError: failed to fetch
。
不幸的是,当网络中断或请求因其他原因超时时,我也会收到 TypeError: failed to fetch
。
如何可靠地区分这些故障模式?
我没有在抛出的 TypeError 上找到任何有用的属性来区分这些失败。
可以使用 redirect: "manual"
选项捕获重定向。
fetch(url, {redirect: "manual"})
虽然出于安全目的无法捕获重定向 URL,但目前这对我来说是可以接受的解决方案。
我正在使用 fetch
向我的应用程序后端发出请求,该应用程序使用 OAuth 身份验证提供程序。
当会话过期时,提取请求被重定向到身份验证提供程序,导致它因 CORS 错误(我无法更改)而失败。
在这种情况下,fetch
抛出 TypeError: failed to fetch
。
不幸的是,当网络中断或请求因其他原因超时时,我也会收到 TypeError: failed to fetch
。
如何可靠地区分这些故障模式?
我没有在抛出的 TypeError 上找到任何有用的属性来区分这些失败。
可以使用 redirect: "manual"
选项捕获重定向。
fetch(url, {redirect: "manual"})
虽然出于安全目的无法捕获重定向 URL,但目前这对我来说是可以接受的解决方案。