web-dev-qa-db-ja.com

Chrome拡張子を使用して送信要求ヘッダーを変更できますか?

開発者ガイド にはこれに対する答えがありませんが、適切な場所を見ていません。

Chrome Extensionを使用してHTTPリクエストをインターセプトしてから、潜在的に新しい/異なるHTTPヘッダーを使用して転送したいのですが、どうすればよいですか?

33
Peter Boughton

PS:私はこの拡張機能のauthorなので私を責めることができますあなたが好きではないもののために:)

OPが質問したときは確かに不可能でしたが、すぐにChrome実験的リリース WebRequest API 。しかし、今では公式にChrome拡張機能:これを使用して、Chromeの要求ヘッダーと応答ヘッダーを変更できます。

この例を見てください:

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return { requestHeaders: details.requestHeaders };
  },
  {urls: ['<all_urls>']},
  [ 'blocking', 'requestHeaders']
);

Chrome Extensionを使用する場合は、 Requestly を使用して、要求ヘッダーと応答ヘッダーを必要に応じて変更できます。このスナップショットをご覧ください。

Headers Rule

36
sachinjain024

要求ヘッダーの変更( https://developer.chrome.com/extensions/webRequest )は、chrome 17。

11

適切な場所を見ていますが、HTTPリクエストのインターセプトはまだ存在しませんが、拡張チームはそれが人気のあるリクエストであることを認識しており、近いうちに到達したいと考えています。

4
Mohamed Mansour

chrome 72から始まる場合、opt_extraInfoSpecextraHeadersを追加しない限り、一部のヘッダーは許可されないことに注意してください。この:

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return { requestHeaders: details.requestHeaders };
  },
  {urls: ['<all_urls>']},
  [ 'blocking', 'requestHeaders', 'extraHeaders']
);

詳細については、ドキュメントを確認してください ドキュメントのスクリーンショットhttps://developer.chrome.com/extensions/webRequest#life_cycle_footnote

0
Mahmoud Felfel