-1

私はJQuery 1.7.2を使用しており、4つのリダイレクトを介してhtmlページを返すクロスサイトAjaxリクエストを実行しようとしています。これらすべてのリダイレクトがある私の理想的な世界ではありませんが、それは仕様の一部です.

ここで、次のコードを使用します。

$.ajax({
     type: "GET",
     url: myUrl,

     dataType: "script",
     success: function(data) {
      alert("success :"+ data);
     },
     error: function(jqXHR, textStatus, errorThrown) {
          alert("revoke: "+textStatus + ' / ' + errorThrown+"/"+jqXHR.status);
     },
     complete: function(jqXHR, textStatus){
         alert("complete : "+jqXHR.statusText + ": "+jqXHR.readyState);
     }
  });

Firebug/Safari 開発者ツールで、すべてのリダイレクトが機能することを確認できます (たとえば、Location ヘッダーで 302 ステータスを返します)。その後、奇妙なことが起こります。200 ステータスを返す最後のページで、スクリプトが終了し、戻ってくるデータを表示しようとします。しかし、出力は単に「未定義」です。HTMLページを取得しようとするときにスクリプトデータ型を期待すべきではないことに同意しますが、他のすべてのデータ型(jquery ajaxページで定義されている)を試してみると、エラーハンドラーが呼び出され、ステータスコードが0です。その間ずっと、Safari DT では、最初のリダイレクト後のステータスは単に「(キャンセル)」として設定されます (その間ずっと、2 番目のリダイレクト ページの要求だけが Firebug でハングしますが、私はそれがしなければならないと推測しています異なる実装で行います)。

200 ステータスを受け取ると、最後のページのサイズが約 18kb であることをデバッガーで確認できます。これは、何らかのデータが含まれていることを意味します。

何をすべきか?

4

1 に答える 1

0

でリダイレクトすることはできませんAJAX。サーバーとの間でデータを送受信することしかできません。

リダイレクトには、「通常の」HTTP リクエストを使用する必要があります。

ジャバスクリプトでもできるwindow.location = myUrl

于 2012-06-12T18:08:44.923 に答える