如果controler返回带有验证错误的视图,有没有明确的方法来检查ajax succes响应?
CONTROLER:
if(result.hasErrors()) {
return "place/add";
}
的javascript:
$.ajax({
url : "<spring:url value="/place/add"/>",
type : 'POST',
data : $("#newPlaceForm").serialize(),
success : function(response) {
如何检查响应是否没有验证消息?
答案 0 :(得分:0)
成功:功能(响应){
if(response.status == "SUCCESS"){ // success code }else{ // show validation errors errorInfo = ""; for(var i =0 ; i < response.result.length ; i++){ errorInfo += "<br>" + (i + 1) +". " + response.result[i].code; } $('#errorId').html("Please correct following errors: " + errorInfo); }, error: function(e){ alert('Error: ' + e); }
答案 1 :(得分:0)
我最终得到了:
success : function(response) {
try {
var status = $.parseJSON(response);
if (status.status = 'OK') {
alertify.success("Akcja wykonana pomyślnie");
$("#newPlaceForm").hide();
$("#spotPlaces").show();
}
} catch (e) {
$("#newLocationBox").html(response);
}
}
对我来说似乎很清楚,我没有必要在html代码中搜索错误,如果一切正常我只是在控制器视图中返回,它只有$ {status}字段并且我添加属性status
字符串化的Json model.addAttribute("status", "{\"status\": \"OK\"}");
答案 2 :(得分:0)
生成HTTP响应代码以指示错误更清楚。
例如:response.sendError(400, "Validation failed")
jQuery将根据响应代码执行提供的错误处理程序。
$.ajax( '/your/url').error(function (jqXHR) {
if (jqXHR.status == 400) {
console.log('Bad Request');
}
});
这一点比较清楚,因为在成功处理程序中处理错误没有多大意义。使用浏览器开发人员工具也可以更轻松地调试失败的请求。