chrome.webRequestのAPIは、リクエストID(:Chrome webRequest documentionソース)の概念がwebRequest API:新しいリクエストのrequestIdを取得するにはどうすればよいですか?
リクエストIDを
は、各要求は、要求IDによって識別されます。このIDは、ブラウザセッションおよび内線番号のコンテキスト内で一意です。要求のライフサイクル中は一定のままであり、同じ要求に対するイベントの照合に使用できます。 HTTPリダイレクトまたはHTTP認証の場合、複数のHTTP要求が1つのWeb要求にマップされることに注意してください。
リダイレクト間でも要求を相関させるために使用できます。しかし、最初にfetch
またはXMLHttpRequest
で新しいリクエストを開始するときに、IDを最初から保持していますか?
これまでのところ、新しいリクエストとrequestIdの間の初期リンクを確立する方法として、リクエストのURLを使用するよりも優れた方法はありませんでした。ただし、同じリソースへの重複要求がある場合、これは信頼できません。
質問:
- あなたが(どちらか
fetch
またはXMLHttpRequest
付き)新しい要求を行った場合、どのように確実にrequestIdへのアクセスを得るのですか? - fetch APIまたはXMLHttpRequest APIはrequestIdへのアクセスを許可していますか?
私がしたいことは、webRequest APIで提供される機能を使用して1つのリクエストを変更することですが、他の保留中のリクエストを誤って変更しないようにしたいと考えています。
さらに、[request event callbacks](https:// developer。)のドキュメントを読んでください。chrome.com/extensions/webRequest#event-onBeforeRequest)コールバックに渡されます –
@PatrickEvans onBeforeRequestリスナーをインストールし、そこからリクエストIDを取得してすぐにリスナーを削除できます。それでも、少し遅れて呼び出されます。私が理解しているように、最初に発射されると、それは要求から来るという保証はありません。確かに、私はまた、URLが一致するかどうかを確認するだけを参照してください。それで、私たちが正しいrequestIdを持っていると仮定するのは合理的に安全だと思います。 –
また、URLにマッチすることも簡単ではありません。たとえば、末尾にスラッシュを追加することができます。 –