Chrome のwebRequestモジュールを利用して、最初にアクセスした URL から取得した URL へのリダイレクトを実行するChrome 拡張機能を作成しようとしています。このために、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 モジュールから受信したデータを使用して、この種の転送をどのように実行しますか?