-6ren">
gpt4 book ai didi

javascript - 使用 Fetch API 时捕获 "Failed to load resource"

转载 作者:搜寻专家 更新时间:2023-11-01 04:22:30 25 4
gpt4 key购买 nike

我在使用 Fetch API 时 try catch 与同源策略相关的一堆错误,但没有成功:

window.onerror = (message, file, line, col, error) => console.log(error)
window.addEventListener('error', (error) => console.log(error))

try {
fetch('https://www.bitstamp.net/api/ticker/').catch(e => {
console.log('Caugth error:')
console.log(e)
console.log(JSON.stringify(e))
})
}
catch (e) {
console.log('try-catch')
console.log(e)
}

我想捕获的错误只出现在 web 控制台中:

error messages

请参阅此处的代码示例:https://github.com/nyg/fetch-error-test

如何捕获这些错误以提供屏幕消息?

编辑:实际执行了 fetch 的 catch block 。

fetch('https://www.bitstamp.net/api/ticker/')
.then(response => response.text())
.then(pre)
.catch(e => {
pre(`Caugth error: ${e.message}`)
})

function pre(text) {
var pre = document.createElement('pre')
document.body.insertAdjacentElement('afterbegin', pre)
pre.insertAdjacentText('beforeend', text)
}
pre {
border: 1px solid black;
margin: 20px;
padding: 20px;
}

最佳答案

据我所知,您不能在典型的 try->catchcatch chaincatch 浏览器驱动的异常获取

CORS 异常是有意抛出的,目的是让用户浏览站点,了解此类异常(如果您可以这样调用它们),并防止被调用的 api/服务器上可能的安全信息泄露

阅读here关于您是否可以使用异常处理程序捕获这些错误的先前 SO 讨论

如果请求抛出的错误可能是响应的一部分,例如状态错误等,那么您可以捕获它并显示自定义消息

关于javascript - 使用 Fetch API 时捕获 "Failed to load resource",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45512248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com