如何解决如何在 chrome 扩展 mv3 上获取网络请求错误的详细信息
如何在清单版本 3 的扩展中获取任何网络请求的错误详细信息? 我需要从选项卡或获取请求中获取错误详细信息(net:ERR 或状态代码等错误)
我在清单版本 2 中是如何做到的:
我们 100% 收到错误 ERR_NAME_NOT_RESOLVED 的网站不存在
_fetch('https://dsdsdf.asdafgfsa.net/',{})
let fetchRequests = []
async function _fetch(url,options) {
let listener
const removeListener = ()=>{
if (listener) {
chrome.webRequest.onBeforeRequest.removeListener(listener)
listener = null
}
}
listener = (details)=>{
if (details.initiator == 'chrome-extension://' + chrome.runtime.id && details.url.includes(url)) {
fetchRequests.push(details.requestId)
removeListener()
}
}
chrome.webRequest.onBeforeRequest.addListener(listener,{urls: ['<all_urls>']})
try {
const response = await fetch(url,options)
return response
} catch(e) {
throw e
} finally {
removeListener()
}
}
chrome.webRequest.onErrorOccurred.addListener(function(details) {
if (details.initiator == 'chrome-extension://' + chrome.runtime.id) {
if (fetchRequests.indexOf(details.requestId) != -1) {
//Here we get the details of our error from the fetch request
console.error(details.url,details.error)
}
} else if (details.type == 'main_frame') {
//Here we get the details of our error from the tab
console.error(details.url,details.error)
}
},{urls: ['<all_urls>']})
chrome.webRequest.onCompleted.addListener(function(details) {
if (details.type == 'main_frame' && (details.statusCode < 200 || details.statusCode > 299)) {
console.error(details.url,details.statusCode)
}
},{urls: ['<all_urls>']})
如何在清单版本 3 上执行此操作?我查看了 declarativeNetRequest ,但它不允许这样做。我没有找到可以提供此类错误详细信息的其他 API(除了 webNavigation,但它没有提供有关获取请求错误的信息)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。