2011-01-18 20 views
11

JSコード:デバッグjQueryのAjaxの機能

$.ajax({ 


     type: 'POST', 
     url: 'http://localhost/MyServiceDir/Service.asmx/Foo', 
     contentType: 'application/json; charset=utf-8', 
     data: jsonData, 
     success: function (msg) { 
      alert("good"); 
     }, 
     error: function (xhr, status) { 
       switch (status) { 
       case 404: 
        alert('File not found'); 
        break; 
       case 500: 
        alert('Server error'); 
        break; 
       case 0: 
        alert('Request aborted'); 
        break; 
       default: 
        alert('Unknown error ' + status); 
      } 
     } 
    }); 

私は、 "不明なエラーエラー" を取得。私はどのようにこれの底に到達するのですか?私は実際にエラーが何かを知りたいです。ありがとう!

答えて

8

「状態」パラメータは含まれています。

「500 Internal Server Error」というメッセージが表示された場合、です。あなたはすべてajaxから取得します。アプリケーションまたはサーバーのログを確認する必要があります。これは、構文エラーまたはライブラリエラーまたはこれらの行に沿った何かの可能性があります。

4

チェックxhr.statusxhr.status

詳細はhttp://www.w3.org/TR/XMLHttpRequest/#response参照:タイムアウト、エラーなどを...あなたはレスポンスオブジェクトをチェックする必要があり、ステータスコードを取得するには - それが失敗した理由

+0

それは500(サーバーエラー)を与えます...しかし、より具体的な詳細を取得する方法はありますか?それとも、私が$ ajaxから手に入れる情報なのでしょうか? – sarsnake

+0

@gnomixa:あなたはサーバーが何を送信してもそれを得ることができます。 'xhr.responseText'を見てください。 – SLaks

+0

@gnomixa、参照:http://www.w3.org/TR/XMLHttpRequest/#response –

3

はONERRORイベントでこれを試してみてください:

alert(xhr.statusText) 

EDIT:

を私はここにあなたの最善の策は、FirefoxでFirebugのプラグインをインストールすることだと思います。これにより、ajax呼び出し(このための「コンソール」タブを有効にする)、応答、およびエラーメッセージを見ることができます。うまくいけば、あなたはこの方法で必要な情報を得ることができるでしょう。これは常にajax呼び出しをデバッグするための私の方法でした

+0

ありがとうございますが、それはあまりにも一般的です - "内部サーバーエラー"。私は、 "間違った引数が渡されました"などの有益なものを探しています...可能かどうかは分かりません。 – sarsnake

+0

上記の私の答えを編集しました... FireBugがお手伝いします – stephen776

+0

FireBugはインストールにバグがあります。それは実際に私のFF 8にインストールされません – sarsnake