我根据chrome.webRequest我要更改数据网址响应标记。但我无法在chrome.webRequest.onHeadersReceived
中捕获数据请求。
我错了吗?
chrome.webRequest.onBeforeRequest.addListener(
function (details) {
const url = details.url
if(url == 'http://www.example.com/api/getUsers') {
return {
redirectUrl: 'data:application/json; charset=utf-8,' +
JSON.stringify({"a":1, "b": 2})
}
}
return {cancel: false}
},
{urls: ["<all_urls>"]},
["blocking"]
)
chrome.webRequest.onHeadersReceived.addListener(
function (details) {
console.log(details) // can't capture data-urls
return {responseHeaders:details.responseHeaders};
},
{urls: ["<all_urls>"]},
["responseHeaders","blocking"]
)
答案 0 :(得分:1)
您无法使用data:
API捕获webRequest
个网址,因为data:
不是supported scheme for host permissions。
因此,即使使用<all_urls>
权限/过滤器,您也无法获得data:
文档引用:
webRequest API仅在给定其主机权限的情况下公开扩展程序有权查看的请求。此外,只有以下方案可供访问:
http://
,https://
,ftp://
,file://
,ws://
(自Chrome 58以来),wss://
(自Chrome 58)或chrome-extension://
。
我很确定已有针对此的功能请求,但我目前无法找到它。