我正在尝试创建一个 Chrome 扩展,该扩展利用 Chrome 的webRequest模块执行重定向到从最初访问的 URL 获得的 URL。为此,我只想使用 Chrome 的 webRequest 函数(例如,onBeforeSendHeaders、onHeadersReceived),而不是简单地使用获得的 URL 调用 $.ajax()。所需的功能是:
- 用户在地址栏中输入 URL
- 发出请求并从 HTTP 响应中提取辅助 URL
- chrome.webRequest.onHeadersReceived处理程序使用阻止响应的 redirectUrl 属性将用户重定向到此辅助 URL 。
我的尝试是:
chrome.webRequest.onHeadersReceived.addListener(
function(details){
var secondaryURL = extractSecondaryURL(details);
return {redirectUrl: secondaryURL}; //this doesn't work
},
{urls:["http://*/*", "https://*/*"]},
["blocking","responseHeaders"]
);
...但页面永远不会被转发。webRequest 文档说:“仅用作对 onBeforeRequest 事件的响应。” 关于redirectUrl属性,这可能是罪魁祸首。
如何使用从响应标头和 Chrome webRequest 模块接收到的数据执行这种转发?