私は、ブラウザーで行われたXHRリクエストを変更して、それを再度再生する方法を探していました。ブラウザで完全なPOSTリクエストが完了したとします。変更したいのは小さな値だけで、それをもう一度再生します。これは、ブラウザで直接行う方がはるかに簡単で高速です。
私は少しグーグルで検索しましたが、ChromeやFirefoxでこれを行う方法を見つけていません。これらのブラウザのいずれか、または別のブラウザでそれを行う方法はありますか?
Chrome:
curl
コマンドがあると仮定して、リクエストを貼り付け/編集し、ターミナルから送信しますキャプチャを参照してください。
または、Webページのコンテキストでリクエストを送信する必要がある場合を選択し、 "fetchとしてコピー"およびJavaScriptコンソールパネルからコンテンツを編集して送信します。
Firefox:
Firefoxでは、ネットワークパネルから直接XHRを編集および再送信できます。以下のキャプチャはFirefox 36からのものです。
私の2つの提案:
ChromeのPostmanプラグイン + Postman Interceptorプラグイン 。詳細: Postman Capturing Requests Docs
Windowsを使用している場合、TelerikのFiddlerはオプションです。 httpリクエストを再生するcomposerオプションがあり、無料です。
Chromeはバージョン67でfetchとしてコピーしました:
フェッチとしてコピー
ネットワーク要求を右クリックし、[コピー]> [フェッチとしてコピー]を選択して、その要求の
fetch()
-- equivalentコードをクリップボードにコピーします。
https://developers.google.com/web/updates/2018/04/devtools#fetch
サンプル出力:
fetch("https://stackoverflow.com/posts/validate-body", {
credentials: "include",
headers: {},
referrer: "https://stackoverflow.com/",
referrerPolicy: "Origin",
body:
"body=Chrome+now+has+_Copy+as+fetch_+in+version+67%3A%0A%0A%3E+Copy+as+fetch%0ARight-click+a+network+request+then+select+**Copy+%3E+Copy+As+Fetch**+to+copy+the+%60fetch()%60-equivalent+code+for+that+request+to+your+clipboard.%0A%0A&oldBody=&isQuestion=false",
method: "POST",
mode: "cors"
});
違いは、cURLとしてコピーにはすべてのリクエストヘッダー(CookieやAcceptなど)も含まれ、Chromeの外部でリクエストを再生するのに適していることです。 fetch()
コードは、同じブラウザー内で再生するのに適しています。
Firefoxの場合、問題は解決しました。 「編集および再送信」機能が実装されています。
Chromeの場合 改ざん拡張 がうまくいくようです。
上記のようにこれを行うにはいくつかの方法がありますが、私の経験では、XHRリクエストと再送信を操作する最良の方法は、chrome devツールを使用してリクエストをcURLリクエストとしてコピーすることです(右クリックネットワークタブでのリクエスト)、Postmanアプリへの単純なインポート(左上の巨大なインポートボタン)。