5

LocationjQuery1.7のヘッダーを使用してターゲットにリダイレクトしたい。

私のコードは次のようになります

$('#creationLink').click(function(){
  $.ajax({
    type: 'POST',
    url: '/',
    success: function(data, textStatus, xhr) {
      window.location = xhr.getResponseHeader("Location");
    }
  })
});

...しかしそれは機能しません。xhr.getResponseHeader("Location")無効である。

HTTPヘッダー:

POST / HTTP/1.1
Host: localhost:9000
X-Requested-With: XMLHttpRequest
Content-Length: 0

HTTP/1.1 302 Found
Content-Type: text/plain; charset=utf-8
Location: http://localhost:9000/vIRdD0PdWp4/bearbeiten
Content-Length: 0

ロケーションヘッダーを使用してリダイレクトするにはどうすればよいですか?

4

1 に答える 1

16

AFAIK、ブラウザはXHR中に、応答ヘッダーのリダイレクトを透過的に追跡することになっています。つまり、XHRは実際に応答を確認し、Locationヘッダーを確認して、そのURIに対する2番目のリクエストを魔法のように実行します。それがその結果を持っているときだけ、それはあなたに何でも与えるでしょう、そしてそれがあなたに与えるものは2番目の要求の結果です。

このstackoverflowの回答を参照してください!

したがって、リダイレクト機能が必要な場合は、リクエストしたものが、JSON応答など、他の方法でターゲットURIを返すようにする必要があります。

このstackoverflowソリューションをご覧ください

PS。参照:http ://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send-method

于 2012-06-04T20:16:47.930 に答える