私はjQueryでPhantomJSを使用していますが、POST/GETを自分で開始せずに、ブラウザに渡されるXMLHttpRequestをキャプチャすることが可能かどうか疑問に思っています。jQueryでXHRをキャプチャしますか?
1
A
答えて
8
あり、それらが送信される前に、AJAXリクエストを変更できるようになる簡単なjQueryの機能がありますが、彼らは唯一のjQueryによって開始AJAX要求をターゲット。ページ上のすべてのAJAX要求をキャッチするには、以下の基本的なJS-唯一の方法を使用します。
(function(open){
XMLHttpRequest.prototype.open = function(method, url, async, username, password) {
// modify the variables here as needed or use 'this` keyword to change the XHR object or add event listeners to it
open.call(this, method, url, async, username, password);
};
})(XMLHttpRequest.prototype.open);
をあなたはまた、XHRセンド()関数を書き換えることができます:
(function(send){
XMLHttpRequest.prototype.send = function(body) {
// your code
send.call(this, body);
};
})(XMLHttpRequest.prototype.send);
を基本的には、このコードは、する必要がありますあなたのページで実行される最初のコード。すべての後続のXHRリクエストは、書き換えられた関数を経由してパラメータなどを変更できるようになります。
注:一部のバージョンのIEをターゲットにする場合は、IE AJAXのための使用。
1
ajaxPrefilter音は良いですが、使用したことはありません。これは、サーバーに行く前に要求をフィルターに掛けます。その後、時に要求戻り、あなたが望むものを、変更するpipeを使用することができます。
$.ajaxPrefilter(function(options, originalOptions, jqXHR){
jqXHR.pipe(function(data){
//modify the data the way you want
})
});
0
ファントムのonResourceReceived
コールバックは、ページによって行われたすべてのXHR/AJAX要求に対して呼び出されます。 2回、実際にはstage = "start"で1回、stage = "end"で1回です。それはあなたにコンテンツを与えることはありませんが、URLを取得します。
関連する問題
- 1. jQuery XHR question
- 2. jQuery ajax()オプション - xhr
- 3. javascript xhrファイルjQueryなしでアップロード
- 4. JQuery ajax xhr開始前に100%完了しましたか?
- 5. jQueryファイルアップロードXHRまたはIFrameを使用していません
- 6. WebDriverを使用してXHR応答データをキャプチャすることは可能ですか
- 7. jQuery 2.2は私のXHRを改めます
- 8. Async.Startで例外をキャプチャしますか?
- 9. SDLで画面をキャプチャしますか?
- 10. アンドロイドで画像をキャプチャしますか?
- 11. Goで画面をキャプチャしますか?
- 12. ヌーガットでビデオをキャプチャしますか?
- 13. XHRがJavaでGETをロードできませんでしたか?
- 14. jquery xhr成功とエラー状態
- 15. XHRリクエストはJQUERYを使用せずに 'undefined'を取得します
- 16. Xhrはクロスドメインリクエストのアップロードをサポートします
- 17. クリップボードペーストイベントw jQueryをキャプチャする方法はありますか?
- 18. キャプチャ離脱ページ - jQuery
- 19. C++ラムダはこれをキャプチャと参照でキャプチャします
- 20. jQueryでaltKey + i、u、e、nをキャプチャする方法はありますか?
- 21. RailsコントローラテストでXHR JQueryレスポンスをassert_selectする方法はありますか?私のコントローラのテストで
- 22. 接続がない場合、XHRは何を返しますか?
- 23. jQuery AJAXまたはXHRリクエストトリガーが完了コールバックからのコールバックを失敗しました
- 24. チャールズプロキシはtvOS 10.2をキャプチャしますか?
- 25. 「スクロールダウン」イベントをキャプチャしますか?
- 26. WCF WebGet HTTPリファラーをキャプチャしますか?
- 27. jQuery ajaxリクエストはXHRがGETを完了できますが、許可されていませんか?
- 28. jqueryをキャプチャするラジオボタンリストの選択値
- 29. XHRはonreadystatechangeでリクエストURLを取得します
- 30. Dojo XHRでAJAX呼び出しをモックアウト
素晴らしい感謝、素晴らしい作品です。 – relm
将来のユーザには注意が必要です。iframeのコードはウィンドウオブジェクトのコピーを取得しますが、XHRをフックする必要があります。 –