如何显示500内部服务器错误

时间:2013-10-14 09:20:51

标签: jquery

我只是有一个一般性的问题:我正在向我的Java后端应用程序发送POST请求(我使用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]

有没有办法做到这一点?

3 个答案:

答案 0 :(得分: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
     });

答案 1 :(得分:1)

jQuery有两种方法可供使用。 complete将处理响应,无论其状态如何,error将在出错时调用。

$.ajax({
    // ...
    error: function(xhr, status, error) {
        var error = eval("(" + xhr.responseText + ")");
        alert(error.Message);
    }
});

答案 2 :(得分:1)

failure上没有此$.ajax个密钥。 Check the manual

它被称为error,因此只需将failure:替换为error: