chrome扩展插件拦截修改请求头
由于部分需求需要调用从三方抓包的来的接口取得一些数据,需要用谷歌扩展插件跨域请求三方接口,并携带部分头部信息,找了几个小时,终于找到了这个方法
- 在扩展程序 background.js(manifest文件background属性中配置的js文件名) 文件中添加以下代码.
/**
* 拦截请求并修改指定请求头信息
*/
chrome.webRequest.onBeforeSendHeaders.addListener(function (details) {
//加入新的请求头 例:在请求头对象中加入 键名为 "msg" 值为 "Hello!" 的请请求头
details.requestHeaders.push({
name:"msg",
value:"Hello!"
});
//todo:修改请求头对象中的某个值应当遍历 details.requestHeaders 进行修改而不是直接push
return {
requestHeaders: details.requestHeaders
};
},
{
urls: ["http://baidu.com/*"]
},
["blocking", "requestHeaders", "extraHeaders"]
);
常见问题
-
某些浏览器添加以上代码后加载报 extraHeaders 错误,解决方法!(如果不报错就不必修改不然拦截会失效)
["blocking", "requestHeaders", "extraHeaders"] 修改为 ["blocking", "requestHeaders"]