这可以通过使用chrome.webRequest
api 来实现。302
's 等通常由浏览器静默处理,但您可以使用此方法停止它们或使它们对您的代码更可见。
chrome.webRequest.onHeadersReceived.addListener(function(details){
var redirUrl;
details.responseHeaders.forEach(function(v,i,a){
if(v.name == "Location"){
redirUrl = v.value;
details.responseHeaders.splice(i,1); //Kill the redirect
}
});
if(redirUrl)
details.responseHeaders.push({name:"redirUrl",value:redirUrl});
return {responseHeaders:details.responseHeaders};
},
{urls: ["http://*/*"],tabId:-1},["responseHeaders","blocking"]);
我指定了tabId
-1,这意味着它应该只适用于不是来自选项卡的请求,即背景页面。这将静默阻止重定向,同时允许您访问302
状态和要重定向到的 url。