如何通过Chrome.webRequest将响应头添加到数据url [英] How to add response headers to data-urls by Chrome.webRequest
问题描述
我根据 chrome.webRequest 我想更改data-urls responseheaders.But我无法在 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}
$ b $,b $ b {urls:[< all_urls>]},
[blocking]
)
chrome .webRequest.onHeadersReceived.addListener(
函数(详细信息){
console.log(details)//无法捕获数据 - url
return {responseHeaders:details.responseHeaders };
},
{urls:[< all_urls>]},
[responseHeaders,blocking]
)
webRequest
API,因为 data:
不是支持主机权限的方案。 因此,即使使用< all_urls>
permission / filter你不会得到 data的事件:
文档引用:
webRequest API只显示该扩展有权查看的请求,因为其主机权限。此外,只能访问以下方案:
http://
,https://
,ftp://
,file://
,ws://
Chrome 58)或chss-extension://
。 p>
我很确定已经有了这个功能请求,但目前我找不到它。
I according to the chrome.webRequest I want to change data-urls responseheaders.But I can't capture data request in chrome.webRequest.onHeadersReceived
.
Am I wrong ?
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"]
)
You can't capture data:
URLs with webRequest
API, since data:
is not a supported scheme for host permissions.
As such, even with <all_urls>
permission/filter you won't get events for data:
Documentation quote:
The webRequest API only exposes requests that the extension has permission to see, given its host permissions. Moreover, only the following schemes are accessible:
http://
,https://
,ftp://
,file://
,ws://
(since Chrome 58),wss://
(since Chrome 58), orchrome-extension://
.
I'm pretty sure there's already a feature request for this, but I can't currently find it.
这篇关于如何通过Chrome.webRequest将响应头添加到数据url的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!