修改onHeadersReceived的标头 [英] Modify headers on onHeadersReceived
问题描述
在我的Chrome扩展程序中,我需要在每个浏览的网站的标题中添加一行。在background.js文件中添加以下代码:
In my chrome extension I need to add a line to header of every site browsed. In background.js file I add such code:
var responseListener = function(details){
var rule = {
"name": "Access-Control-Allow-Origin",
"value": "*"
};
details.responseHeaders.push(rule);
return {responseHeaders: details.responseHeaders};
};
chrome.webRequest.onHeadersReceived.addListener(responseListener,
{urls: [ "*://*/*" ] },
["blocking", "responseHeaders"]);
调试处理程序时调用,新添加的头成功通过任何我在堆栈中找到的过滤器。但它不是在网络选项卡的响应头部分,不会影响任何代码。我使用这些权限:
While debugging the handler is called and newly added header successfully passes any filters I have found upper in the stack. But it is not seen on network tab's Response headers section and does not effects any code. I use these permissions:
"tabs","<all_urls>", "http://*/*" ,"webRequest","webRequestBlocking", "webNavigation"
是否有新政策或API或者在我的10行代码中有一些错误?
Is there a new policy or API changed which disallow to do such things or there is some bug in my 10 lines of a code?
推荐答案
Chrome开发工具的网络标签不显示来自扩展的修改。请参见 https://crbug.com/258064
The Network tab of the Chrome Developer tools does not show the modifications from extensions. See https://crbug.com/258064
如果您希望查看您的扩展程序是否已成功修改请求,请访问 chrome:// net-internals /#events
,点击类型 URL_REQUEST
,然后查找 URL_REQUEST_DELEGATE
条目,例如 URL_REQUEST_FAKE_RESPONSE_HEADERS_CREATED
(这是通过 chrome.declarativeWebRequest
API)或delegate_info =extension [extension name]
chrome.webRequest
)。
If you wish to see whether your extension has successfully modified a request, visit chrome://net-internals/#events
, click on a request of type URL_REQUEST
and look for URL_REQUEST_DELEGATE
entries, e.g. URL_REQUEST_FAKE_RESPONSE_HEADERS_CREATED
(this is an example of a log entry generated via the chrome.declarativeWebRequest
API) or "delegate_info = "extension [extension name]"
(generated by chrome.webRequest
).
这篇关于修改onHeadersReceived的标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!