【发布时间】:2021-03-29 21:55:57
【问题描述】:
我想从fetch 捕获完整的错误,例如我想要红色标记的东西作为字符串:
但是,在我的 catch 块中,我只收到“无法获取”。这是我的代码:
try {
response = await fetch(url, {
method: method,
body: JSON.stringify(payload),
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
});
if (!response.ok) {
throw new Error(`RESPONSE NOT OK: ${response.status}`);
}
console.info('got 200 json response:' + (await response?.json()));
} catch (e) {
console.error('CATCH BLOCK:' + e.message); // only gives me "Failed to fetch"
}
那么,我怎样才能得到一个字符串中的完整提取错误,例如直接在我的网络界面中显示?
更新
只是为了澄清这一点:我知道如何修复错误本身。这个问题只是关于如何将完整的错误作为字符串获取。
【问题讨论】:
-
您使用的是什么后端?您需要在后端启用 CORS。
-
谢谢,但错误本身不是问题。这真的是关于如何将错误捕获为字符串。
-
显示的错误信息与fetch API无关。该消息来自浏览器的开发人员工具,您无法通过 JS 与之交互。
-
CORS 错误是浏览器网络错误消息,而不是 fetch() 或 XMLHttpRequest 的一部分。您所能做的就是访问状态
-
谢谢你们,这是有道理的。无论如何,获取本身不会提供比“获取失败”更多的信息吗?我错过的错误对象的任何属性?喜欢
e.fullMessage左右?
标签: javascript typescript fetch-api