web-dev-qa-db-ja.com

jQuery $ .ajax()関数のエラーメッセージソース

失敗した場合、コードは次のようになります。

error: function(msg)

msgはどこから来たのですか?

編集:

この関数($ ajax)を使用してWebサービスを呼び出しています。したがって、これに反対票を投じた人が、メッセージの出所を説明できれば、それは素晴らしいことです。 Webサービスで設定しますか?もしそうなら、どのように?定義をコピーして貼り付けないでください。

21
sarsnake

Jqueryのドキュメントから:

error(XMLHttpRequest, textStatus, errorThrown) Function

リクエストが失敗した場合に呼び出される関数。関数には3つの引数が渡されます。
-XMLHttpRequestオブジェクト、
-発生したエラーのタイプを説明する文字列、および
-オプションの例外オブジェクト(発生した場合)。
2番目の引数(null以外)の可能な値は、「timeout」、「error」、「notmodified」、および「parsererror」です。これはAjaxイベントです。

パラメータを1つだけ指定すると、それはxmlHttpRequestObjectになります。あなたはそれからいくつかの良い情報を得ることができます。悲しいことに、そこにあるほとんどのドキュメントではこれを正しく設定していません。適切なデフォルトテンプレートは次のとおりです。

error:function (xhRequest, errorText, thrownError)

XhRequestから取得できるいくつかの良い情報は次のとおりです。

  • .status:404:「見つかりません」、500:「サーバーエラー」。これは時々大きな助けになることがあります。
  • .responseTextはサーバーからの情報であり、エラーが発生した場合には役に立たないことがよくありますが、役立つ場合もあります。

2番目の値である文字列が役立つ場合があります。ああ、可能な値はドキュメントに記載されていると思います。

3番目のパラメーターは、チェックアウトするたびに、常に未定義になっています。私はそれが今までに役に立たないと思います。

20
Patrick Karcher

エラーコールバック関数の3番目のパラメータerrorThrownだと思います

 error(XMLHttpRequest, textStatus, errorThrown)

サーバーからテキストエラーメッセージを送信するだけです。

したがって、サーバー上で設定した場合:

 Response.Status = 403;
 Response.StatusDescription = "Password is not correct";

あなたが得るクライアントで:

 textStatus => "error",
 errorThrown => "Password is not correct"

Asp.netMVCのサーバー部分は次のようになります。

 return new HttpStatusCodeResult(403, "Password is not correct");
7
Vladimir Buskin

メッセージは、ajax呼び出しでクエリしている実際のサーバー側関数からの戻り値です。

そうすれば、サーバー側のコードが想定どおりに機能したかどうかに関するエラーやその他の情報を取得できます。

文字列「success」を返すと言います

msg.val()は「成功」と等しくなります

それが役立つことを願っています

2
sdmiller

ajax戻り変数(この場合は 'msg')は、AJAX呼び出しから返される出力です-ajaxエラーの場合、これはおそらくサーバーエラーです。

0
Eddie

実際、正しい方法は次のとおりです。

error: function(req, status, error) {
}

JQuery APIから:

リクエストが失敗した場合に呼び出される関数。この関数には、3つの引数が渡されます。XMLHttpRequestオブジェクト、発生したエラーのタイプを説明する文字列、およびオプションの例外オブジェクト(発生した場合)です。 2番目の引数(null以外)に指定できる値は、「timeout」、「error」、「notmodified」、および「parsererror」です。これはAjaxイベントです。

0
Per H