基于此文档:https ://developer.chrome.com/extensions/webRequest.html#event-onHeadersReceived
我试图通过控制台显示响应,例如:
console.log(info.responseHeaders);
但它的回归undefined
。
但这有效:
console.log("Type: " + info.type);
请帮忙,我真的需要获取 responseHeaders 数据。
基于此文档:https ://developer.chrome.com/extensions/webRequest.html#event-onHeadersReceived
我试图通过控制台显示响应,例如:
console.log(info.responseHeaders);
但它的回归undefined
。
但这有效:
console.log("Type: " + info.type);
请帮忙,我真的需要获取 responseHeaders 数据。
您必须像这样请求响应标头:
chrome.webRequest.onHeadersReceived.addListener(function(details){
console.log(details.responseHeaders);
},
{urls: ["http://*/*"]},["responseHeaders"]);
使用示例。这是我如何webRequest
在扩展程序中使用 api 的一个实例。(只显示部分不完整的代码)
我需要间接访问一些服务器数据,我通过使用 302 重定向页面来做到这一点。Head
我向所需的网址发送请求,如下所示:
$.ajax({
url: url,
type: "HEAD"
success: function(data,status,jqXHR){
//If this was not a HEAD request, `data` would contain the response
//But in my case all I need are the headers so `data` is empty
comparePosts(jqXHR.getResponseHeader('redirUrl')); //where I handle the data
}
});
然后我默默地终止重定向,同时location
使用webRequest
api 为我自己的用途抓取标题:
chrome.webRequest.onHeadersReceived.addListener(function(details){
if(details.method == "HEAD"){
var redirUrl;
details.responseHeaders.forEach(function(v,i,a){
if(v.name == "Location"){
redirUrl = v.value;
details.responseHeaders.splice(i,1);
}
});
details.responseHeaders.push({name:"redirUrl",value:redirUrl});
return {responseHeaders:details.responseHeaders}; //I kill the redirect
}
},
{urls: ["http://*/*"]},["responseHeaders","blocking"]);
我实际上在onHeadersReceived
侦听器内部处理数据,但这种方式显示了响应数据的位置。