3

ajax(および/またはjQuery ajax)とステータス302に問題があります。

これは私が試していることです:

var xhr = new XMLHttpRequest();
xhr.open("GET", 'some_page_that_I_cant_change.php');
xhr.onreadystatechange = function(){
    console.log(xhr.readyState, xhr.status);
};
xhr.send(null);

withコードにsome_page_that_I_cant_change.phpリダイレクトします。このファイルをダウンロードしたくありません。ファイルへのパスを知りたいだけです。例:.bin302

./some_page_that_I_cant_change.php
./path/to/bin/file.bin << I wan't only this path as string

問題は、Chromeがスクリプトへのパスを教えずに、ファイルに自動的にリダイレクトすることです。これに対する回避策はありますか?

4

3 に答える 3

2

GETリクエストの代わりにHEADリクエストを使用する場合、それがあなたの望むことをするのではないかと思います。応答にはヘッダーのみが表示され、応答本文は表示されません(つまり、.binはダウンロードされません)。

于 2011-06-09T20:50:18.007 に答える
0

解決策と回避策についてまったく同じトピックに関する古いスレッドがあります:jQueryAjax 呼び出し後にリダイレクトリクエストを管理する方法

于 2011-06-21T10:51:56.540 に答える
0

一言で言えば、私はあなたがHTTPプロトコルのその原因を行うことができるとは思わない。
HTTPプロトコル([1]:http ://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html )は、302がリダイレクトURIを意味し、ブラウザが従うことを規定しています。したがって、JavaScriptはリダイレクト応答を取得できません。最終応答を取得します。

だから、あなたは応答本体によってパスを取得する必要があります。

于 2013-11-27T09:18:03.487 に答える