我正在使用Fetch在javascript中提出跨源请求。
Cloudflare(代理我的流量)有时会返回429(速率限制)。
返回429时,它们不包含Access-Control-Allow-Origin
标头。
所以现在我的fetch
和mode: 'cors'
失败了,并抛出了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 docs时,我不确定是否可以将这429个错误与其他网络错误分开检测吗?
当遇到网络错误或在服务器端错误配置CORS时,fetch()承诺将拒绝并返回TypeError,尽管这通常意味着权限问题或类似情况