6

Chrome のwebRequestモジュールを利用して、最初にアクセスした URL から取得した URL へのリダイレクトを実行するChrome 拡張機能を作成しようとしています。このために、Chrome の webRequest 関数 (onBeforeSendHeaders、onHeadersReceived など) のみを利用し、取得した URL を使用して $.ajax() の呼び出しを実行するだけではありません。必要な機能は次のとおりです。

  1. ユーザーがアドレスバーに URL を入力する
  2. リクエストが作成され、HTTP レスポンスからセカンダリ URL が抽出されます
  3. 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 モジュールから受信したデータを使用して、この種の転送をどのように実行しますか?

4

1 に答える 1