xhrオブジェクトからリクエストURLを抽出する方法はありますか? 私はfirebugのURLをchannelプロパティで見ることができますが、javascriptを使用してこれを問い合わせることはできません。xhrオブジェクトからリクエストURLを取得
答えて
私はあなたの問題を正しく理解していることを望みます。
このような機能を実現するには、XHRオブジェクトを独自のオブジェクトでラップするのはかなり簡単です。以下は
過度に単純化した例である:
// Assumption: GetXHR() returns a new XHR object, cross browser.
function HTTPGet(url, onStartCb, onCompleteCb)
{
var xhr = GetXHR();
// Construct your own xhr object that contains the url and the xhr object itself.
var myXhr = { xhr: xhr, url: url };
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
onCompleteCb(myXhr);
}
};
xhr.open("GET", url);
onStartCb(myXhr);
xhr.send(null);
}
私は広範囲にこれをテストしていませんが、それは動作するはずですし、いくつかの変更(エラー処理、パラメータを渡す、など)で、おそらく回すことができるはずですこの例を完全に機能するソリューションに変換します。
これは最高のアプローチですが、私は現在作業しているすべてのjsをリファクタリングする必要があります。お返事の応援 – redsquare
現在使用しているコードの一部を提供できる場合は、コードを大幅に変更することなくこの機能を追加するエレガントな方法を見つけることができます。コールバックに戻ってくるXHRオブジェクト(これはテストしていません)を猿パッチすることは可能です(あなたですか?)。 –
https://developer.mozilla.org/en/XmlHttpRequestによれば、昇格した特権を持っている場合は、実際にchannel
を得ることができます。ただし、channel
は標準ではありません(他のブラウザでは動作しない可能性があります)。実際にhttp://www.w3.org/TR/XMLHttpRequest/のW3C仕様にはchannel
や「リクエストURLを抽出する」その他の方法はありません。したがって、ブラウザ間で合理的に行う方法はないと私は思っています。
この情報を取得することは拡張機能にとって問題ではありません(特権アクセスがあるため)が、通常のxmlhttprequestの使用法で私が知っている限り利用できません –
jQueryを使用している場合は、AJAXリクエストの "beforeSend"関数を使用してjqXHRオブジェクトを変更できます。すなわち、様々なコールバックに渡さ
$.ajax({
...
url: "http://some/url",
beforeSend: function(jqxhr, settings) { jqxhr.requestURL = "http://some/url"; },
...
});
jqXHRオブジェクトは、あなたがアクセスできる変数、jqXHR.requestURL
を、持っています。次は何のラッパーをハックしないで
'jqxhr.requestURL = settings.url'を実行すると、' $ .ajaxSetup'呼び出しでグローバルに設定できます。 –
が必要となります。
var xhrProto = XMLHttpRequest.prototype,
origOpen = xhrProto.open;
xhrProto.open = function (method, url) {
this._url = url;
return origOpen.apply(this, arguments);
};
使用法:
var r = new XMLHttpRequest();
r.open('GET', '...', true);
alert(r._url); // opens an alert dialog with '...'
- 1. XHRはonreadystatechangeでリクエストURLを取得します
- 2. リダイレクト後にXHRオブジェクトから最終的なURLを取得します
- 3. chrome.webRequest.onBeforeRequestでAngularJS XHRリクエストを取得する
- 4. GETリクエストからレスポンスURLを取得
- 5. Sails.js - リクエストからpreviouse URLを取得
- 6. URL標準オブジェクトからパラメータを取得
- 7. URLからJSONオブジェクトを取得する
- 8. XHRリクエストからOAuth2トークンを受け取ります。
- 9. フラスコrestplus - リクエストURLを取得
- 10. kivy pythonでURLリクエストからデータを取得する方法
- 11. Laravel 5のリクエストからurlパラメータを取得する方法は?
- 12. WebDriverモジュールからCodeceptionの完全なリクエストURLを取得
- 13. サービスはコントローラからの$ http APIリクエストのURLを取得 - Angular.js
- 14. 現在のリクエストからアプリケーションURLを取得
- 15. Python XHRリクエストのフォーマット
- 16. URLからNSDataオブジェクトへXMLファイルを取得しますか?
- 17. URLからアクセストークンを取得
- 18. URLからページコンテンツを取得
- 19. IDからURLを取得
- 20. コンテンツからURLを取得
- 21. SFSafariViewControllerからURLを取得
- 22. XHRからレスポンスのContent-Typeヘッダーを取得
- 23. xhrからヘッダーを取得する方法は?
- 24. NodeJsが各URLリクエストのJSONを取得
- 25. GWT:GETリクエストでURLパラメータを取得する
- 26. iframeのURLでリクエストを取得
- 27. Django Rest FrameworkカスタムUrlでリクエストを取得
- 28. Perl:SOAP :: WSDLオブジェクトからの完全なリクエストの取得
- 29. JavaScriptからURLからコンテンツを取得
- 30. パイソン - BeatifulsoupでURLから特定の「オブジェクト」を取得し
は、Firefoxの拡張機能のためか、ページのスクリプトは、このですか?それがページ上にある場合は、なぜその情報を持っていないのですか? –
私はさまざまなデータを要求する複数の間隔を持っています。一般的なイベントを処理する共通のajaxStart&ajaxCompleteイベントがあります(進行状況の表示/非表示)ajaxCompleteイベントの中で、 – redsquare