0

一般的な質問があります。POST リクエストを Java バックエンド アプリケーションに送信しています (送信に jQuery を使用しています)。基本的には 500 内部サーバー エラーが発生しますが、問題ありません。問題は、コンソールでエラーを確認できますが、ユーザーに表示 (および場合によってはカスタマイズ) したいので、どのようにアラートとして表示するかです。このエラーは、ユーザーが新しいレコードを追加して投稿しようとしたが、サーバー側での検証に失敗したときに発生します。リクエストを送信するためのコードは次のとおりです。

createCandidate: function (candidate, onSuccess){       
        $.ajax({
            url : 'ws/catservices/createCandidate',
            type : 'POST',
            async: false,
            contentType : 'application/json',
            data : JSON.stringify(candidate),
            failure : function(jqXHR, textStatus, errorThrown) {
                alert("error" + textStatus);
            },
            success: onSuccess
        });
    }

そして、これがコンソールに表示されるものです:

[10:12:52.762] POST http://localhost:8080/cat_prototype/ws/catservices/createCandidate [HTTP/1.1 500 Internal Server Error 46ms]

これを行う方法はありますか?

4

3 に答える 3

3

使ってみて

    $.ajax({
        url : 'ws/catservices/createCandidate',
        type : 'POST',
        async: false,
        contentType : 'application/json',
        data : JSON.stringify(candidate),
        failure : function(jqXHR, textStatus, errorThrown) {
            alert("error" + textStatus);
        },
        statusCode: {
           500: function() {
             alert( "message" );
           }
        }
        success: onSuccess
     });
于 2013-10-14T09:26:46.907 に答える
1

jQuery には、使用できるメソッドが 2 つあります。completeこれは、ステータスに関係なく応答を処理errorし、エラー時に呼び出されます。

$.ajax({
    // ...
    error: function(xhr, status, error) {
        var error = eval("(" + xhr.responseText + ")");
        alert(error.Message);
    }
});
于 2013-10-14T09:25:15.810 に答える
1

failureにはそのようなキーはありません$.ajaxマニュアルを確認してください

と呼ばれerrorているので、単純に に置き換えfailure:ますerror:

于 2013-10-14T09:25:22.953 に答える