如何通过Chrome.webRequest将响应头添加到数据url [英] How to add response headers to data-urls by Chrome.webRequest

查看:409
本文介绍了如何通过Chrome.webRequest将响应头添加到数据url的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我根据 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), or chrome-extension://.

I'm pretty sure there's already a feature request for this, but I can't currently find it.

这篇关于如何通过Chrome.webRequest将响应头添加到数据url的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆