0

我只是有一个一般性问题:我正在向我的 Java 后端应用程序发送一个 POST 请求(我正在使用 jQuery 发送它),基本上它给了我 500 Internal Server Error,但这很好。问题是如何将其显示为警报,因为我可以在控制台中看到错误,但我希望它对用户可见(并且可能是自定义的)。当用户尝试添加新记录并发布它但它在服务器端验证失败时会导致错误。这是发送请求的代码:

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 有两种可以使用的方法。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 回答