2011-11-08 3 views
13

ページ(URL)がありますが、私はXMLHttpRequestのことで、それを要求したが、私は--->page.php
を要求し、それが別のページへのリクエストを向けるだ、XMLHttpRequestでレスポンスURLを取得するには?

を要求されたURLからのレスポンスが届きません>directedpage.php

質問にはどのように回答することができますか? (directedpage.phpの例)

答えて

24

XMLHttpRequestインスタンスのresponseURL attributeでは、最終的なURL(すべてのリダイレクト後)が利用できます。 この機能は新しく、Firefoxの場合にのみ有効です安定した2014年9月の[ref]とChrome 37.0.2031.0 の安定した2014年8月[ref](おそらくOpera 24も)。 responseURLは、IE 11やSafari 7以前のブラウザでは(まだ)サポートされていません。これらのブラウザでは、以前の回答はまだ成り立ちます。

XMLHttpRequestは、サービスされたURLをプロパティに保存せずに自動的にリダイレクトします。 Locationヘッダーは.getResponseHeader()で検索できません。

参考文献:

+0

OK、しかし、誰かがなぜ知っているのですか?セキュリティ?レスポンスURLでどの攻撃を利用できるはずですか? (応答URLが元のURLと同じ起点にある場合のみ応答URLを与えます) –

+0

@JulienPalard [仕様](http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send() -method)では、リダイレクトを透過的に追跡する必要があります。 –

+0

@RobW:私はこの 'A = 302-B = 302-> C = 302-> A = 200'を持っていれば分かりません。どのresponseURLが返されますか? CかAのThe? – user2284570

関連する問題