【问题标题】:Using browser.webRequest on a createObjectURL url match在 createObjectURL url 匹配上使用 browser.webRequest
【发布时间】:2018-06-29 19:51:34
【问题描述】:

可以在 browser.webRequest url 匹配中使用 window.URL.createObjectURL 中的对象 url 来拦截 url blob 的下载请求吗?

如果是的话,比赛是怎么写的?

对象 url 的格式为 blob:null/839459f5-7f47-4548-986c-5830fdeaa009;似乎都以“blob:null”开头。

为了比赛

<scheme>://<host><path>,

我找不到任何可以捕获对象 url 下载的东西。

我试过了

"<all_urls">, "*://*/*", "blob:null/*".

我可以捕获 browser.downloads.onCreated 事件,但 webRequest 没有。 webRequest语句如下。

browser.webRequest.onBeforeSendHeaders.addListener(

 listener,

 { urls : ["<all_urls>"] },

["blocking"] );

而且,manifest.json 中的权限是:

  "permissions" : [ "downloads", "webRequest", "webRequestBlocking", "<all_urls>" ],

知道我做错了什么吗?

谢谢。

【问题讨论】:

    标签: javascript webrequest firefox-addon-webextensions


    【解决方案1】:

    不,Blob URI 不是网络请求。缓存页面也是一样,不能拦截。

    【讨论】:

    • 谢谢。如果在 blob URL 上执行 XMLHttpRequest(),它会返回 '200' 'OK'。
    • 没错,但是 XHR 也会返回缓存的资源或数据 URI。 webRequest 仅处理触发实际网络请求的操作,而 Blob(或缓存的事物或数据 URI)则不是这种情况。 Blob 由 JS 生成并具有 URI,因此您可以将它们与 Web 平台中所有使用 URL 的 API 一起使用。总之,能够使用 XHR 加载内容并不意味着它将通过 webRequest 传递。
    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2021-07-02
    • 2019-05-20
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    相关资源
    最近更新 更多