我目前正在开发Chrome扩展程序,需要添加/更改标头值,但仅限于特定页面。像这样:
chrome.onPageRequest(function(host) {
if(host == 'google.com') {
chrome.response.addHeader('X-Auth', 'abc123');
}
});
非常感谢任何帮助:)
答案 0 :(得分:6)
您可以使用 chrome.webRequest API 来实现此目的。您需要以下内容:
在清单中声明适当的权限:
... "permissions": [ ... "webRequest", "*://*.google.com/*" ]
注册 chrome.webRequest.onHeadersReceived()
事件的监听器并修改标头。为了能够修改标题,您需要定义'responseHeaders'额外信息(参见监听器函数的第三个参数):
chrome.webRequest.onHeadersReceived.addListener(function(details) { console.log(details); details.responseHeaders.push({ name: 'X-Auth', value: 'abc123' }); return { responseHeaders: details.responseHeaders }; }, { urls: ['*://*.google.com/*'] }, [ "responseHeaders" ]);
请记住,webRequest
权限仅在您的背景页是持久性的情况下才有效,因此请从清单中删除相应的行(如果存在 - 应该这样做):
... "background": { "persistent": false, // <-- Remove this line or set it to `true` "scripts": [...] ...
另外,请注意,Google通常会根据用户的国家/地区重定向请求(例如,将www.google.com
重定向到www.google.gr
),在这种情况下,过滤器不会让他们到达您的onHeadersReceived
听众。