已经在manifest.json
申请了webRequest
和webRequestBlocking
两个权限
拦截请求尝试读请求头部的Host
信息代码如下
chrome.webRequest.onBeforeSendHeaders.addListener(function(details) {
var headers = details.requestHeaders;
for(var i = 0, l = headers.length; i < l; ++i) {
if( headers[i].name == 'Host' && console.log(headers[i].name) && headers[i].value == '10.201.76.233:8080' ) {
// something
break;
}
}
return {requestHeaders: headers};
}, requestFilter, ['requestHeaders','blocking']);
但是details.requestHeaders
并没有包含Host
的信息。
请教各位,如何才能获取到每次请求的Host
信息?
或是如何确定本次的请求的Host
是10.201.76.231:8080
呢
===update===
使用公子的方法解决了上面的问题了,但还存在后续问题
chrome.webRequest.onBeforeRequest.addListener(
var headers = details.requestHeaders;
headers.push({
name: 'Authorization',
value: 'Bearer3988275f-34fe-4e95-8452-506741adf184'
});
return {requestHeaders: headers};
["http://10.201.76.231:8080/*"],
['blocking', 'requestHeaders']
);
目的是增加Authorization
信息,代码并没有报错,但是最终结果并没有把Authorization
信息加上去。
https://developer.chrome.com/extensions/webRequest ,文档中明确指出了以下头信息不会被传递进来:
如果是想要限制请求的 host 的话可以使用
onBeforeSendHeaders
的第二个参数filter
: