我只是有一个一般性的问题:我正在向我的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]
有没有办法做到这一点?
答案 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:
。