コンテンツタイプとしてJSONPとエラーハンドラ内のリダイレクトフローの最後のURLを取得する方法:は、AJAXは:私は、次のJavaScript/jQueryのコードでウェブサイトを持っている
var req = $.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://foo.com',
error: function (jqXHR, textStatus, errorThrown) {
// what is the last URL in the redirect flow?
}
});
これは何が起こるかです:
いいえを行い302を返し、http://bar.com
が要求される
http://bar.com
工程2)にリダイレクト
ステップ1) http://foo.com
が要求され、有効なJSONPのコンテンツ(HTMLファイル)が含まれているため、req.error()
が正常にトリガーされます。
を達成しようとすると、手順2のURL(http://bar.com
)が表示されます。このURLは動的です(リクエストごとに変更されます)。また、私はこの要求をサーバー側で行うことはできません(簡単に行うことができますが、手順2でそのWebサイトを開始したクライアントでなければなりません)。
Chromeデベロッパーツールの[ネットワーク]タブでリダイレクトが行われていることがわかります(実際には3つのステップフローですが、簡単にするため、上記の2つのステップフローを想像してください)。
注 - リモートサーバーでCORSが許可されていないため、JSONPを使用しています。
...有効CORSを持っている必要があります。あなたのエラーハンドラのgetResponseHeader( 'Location') '? – mherzig
@mherzig私は 'null'を取得します。 –
ダン。意味があります、私はあなたがヘッダーが読み取れるようにサーバーを設定する必要がありますと信じています。 – mherzig