我正在使用 Fetch 来在JavaScript中进行跨域请求。
Cloudflare(代理我的流量)有时会返回429(速率限制)。
当它们返回429时,它们不包括Access-Control-Allow-Origin头。
因此,现在我的具有模式'cors'的fetch失败,并抛出TypeError。
如何捕获这种情况,而不是像网络错误等其他原因抛出异常? 我的代码如下:
查看MDN文档,我不确定是否可以将此429错误与其他网络错误分开检测?
Cloudflare(代理我的流量)有时会返回429(速率限制)。
当它们返回429时,它们不包括Access-Control-Allow-Origin头。
因此,现在我的具有模式'cors'的fetch失败,并抛出TypeError。
如何捕获这种情况,而不是像网络错误等其他原因抛出异常? 我的代码如下:
try {
let response = await fetch(uri, config); // this throws
if (!response.ok) { // this line does not run
throw response.statusText;
}
let json = await response.json();
return json;
} catch (e) {
console.log(e.message); // "Failed to fetch"
}
查看MDN文档,我不确定是否可以将此429错误与其他网络错误分开检测?
当遇到网络错误或服务器端CORS配置错误时,fetch() Promise会因TypeError而拒绝,尽管这通常意味着权限问题或类似问题