4

HTML5、jQuery 1.6.1、jQuery Mobile 1.0.1 を使用しています。

以下のコードを使用して Ajax リクエストを作成しています。Chrome では正常に動作していますが、Firefox 14.0.1 でのテスト中に以下のエラーが発生しました。

XMLHttpRequest の withCredentials 属性の使用は、ウィンドウ コンテキストの同期モードではサポートされなくなりました。

コード:

$.ajax({
   type: "GET",
   dataType: "json",        
   async: false,
   beforeSend: function (xhr){          
        xhr.setRequestHeader('Authorization', make_base_auth(UserId, Password)); 
  },
  xhrFields: {
      withCredentials: true
  },
   success:function(data){                  
   console.log("Success");          
 },
 error:function(xhr,err){
    console.log("Failed" );
 }          
});

これについて私を助けてください。

4

2 に答える 2

17

async: false解決策は簡単です: で使用しないで$.ajaxください。

新しいバージョンでは廃止されており、必要ありません。それを使うのはいつも悪い考えでした。成功コールバックからの結果で必要なことを実行します (あなたの のようにconsole.log)。

ドキュメント(1.8)から:

同期リクエストはブラウザを一時的にロックし、リクエストがアクティブな間はすべてのアクションを無効にする場合があることに注意してください。jQuery 1.8 以降、jqXHR ($.Deferred) で async: false を使用することは推奨されなくなりました。完全/成功/エラーのコールバックを使用する必要があります。

于 2012-09-18T07:37:39.270 に答える