0
function girisAjaxKontrol() {
var kullanici = { 'kullaniciAdi': $('#username').val(), 'sifre': $('#password').val() };

$.ajax({
    url: '/Giris/GirisGecerliMi',
    type: 'POST',
    data: kullanici,
    success: girisAjaxReturn,
    error: function (error) {
        alert(error.toString());            
    }
});

}

asp .Net MVC4 プロジェクトをデバッグすると、すべて正常に動作します。しかし、公開後、上記のコード ブロックは "[object Object]" としてアラート メッセージを返します。エラー メッセージが文字列ではないのはなぜですか? また、発行後に機能しないのはなぜですか?

4

2 に答える 2

1

jQuery.ajax()の.error()イベントは、次の3つの引数を受け入れます。

jqXHR(jQuery 1.4.xではXMLHttpRequest)オブジェクト、発生したエラーのタイプを説明する文字列、およびオプションの例外オブジェクト(発生した場合)。-jQuery.ajax()の詳細については、こちらをご覧ください。

.error()イベントは、jQueryによってjQXHRオブジェクトとして自動的に読み取られる1つの引数を受け入れています。アラート内でそれを確認するには、次のようなことを試してください。

alert(JSON.stringify(error));

または、エラーの説明を返すこともできます。

error: function(error, textStatus) {
     alert(textStatus);
}

例外オブジェクトは、HTTPエラーが発生した場合にのみ返されます。

于 2012-06-20T09:52:27.660 に答える
1

によって返される遅延オブジェクトのerrorイベント ハンドラーは、次の$.ajax()3 つのパラメーターを取ります。

error : function (jqXHR, textStatus, errorThrown) { }

エラー ハンドラーに対してのみ宣言しているfunction (error) { }ため、実際には、AJAX 呼び出しで使用される元の XHR オブジェクトを警告しています。

オブジェクト全体を調べたい場合はconsole.log(error)、関数を試すか、 を使用して JSON 文字列に変換しJSON.stringify(error)、それを警告します。

または、エラー ハンドラに渡された 2 番目または 3 番目のパラメータを調べることもできます。function (x,s,e) {}個人的には、簡潔にするためにエラー関数に署名するのが好きです。

于 2012-06-20T09:43:45.180 に答える