Ajax spring mvc检查BindingResult是否在javascript响应中

Ajax spring mvc检查BindingResult是否在javascript响应中,ajax,spring,spring-mvc,Ajax,Spring,Spring Mvc,如果Controller返回带有验证错误的视图,是否有明确的方法签入ajax成功响应 控制器: if(result.hasErrors()) { return "place/add"; } javascript: $.ajax({ url : "<spring:url value="/place/add"/>", type : 'POST', data : $("#newPlaceForm").serializ

如果Controller返回带有验证错误的视图,是否有明确的方法签入ajax成功响应

控制器:

if(result.hasErrors()) {
        return "place/add";
    }
javascript:

$.ajax({
        url : "<spring:url value="/place/add"/>",
        type : 'POST',
        data : $("#newPlaceForm").serialize(),
        success : function(response) {
$.ajax({
url:“”,
键入:“POST”,
数据:$(“#newPlaceForm”).serialize(),
成功:功能(响应){
如何检查响应是否没有验证消息

成功:功能(响应){

if(response.status==“SUCCESS”){
//成功代码
}否则{
//显示验证错误
errorInfo=“”;
对于(var i=0;i”+(i+1)+“+响应。结果[i]。代码;
}
$('#errorId').html(“请更正以下错误:“+errorInfo”);
},错误:函数(e){
警报('错误:'+e);
}
我的结局是:

                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\”)

生成HTTP响应代码以指示错误更为清晰

例如:
response.sendError(400,“验证失败”)

jQuery将根据响应代码执行提供的错误处理程序

$.ajax( '/your/url').error(function (jqXHR) {
    if (jqXHR.status == 400) {
        console.log('Bad Request');
    }
});

这一点更加清楚,因为在成功处理程序中处理错误没有多大意义。失败的请求也更容易用浏览器开发工具进行调试。

但是这样我就丢失了
的错误。在这种情况下,只需使用
response.setStatus(400)
error:function(xhr,ajaxOptions,thrownError){$(“#newLocationBox”).html(xhr);alert(xhr.status)}I不能用responsesolved:
$(“#newLocationBox”).html(xhr.responseText)替换div内容
,好的,我接受你的解决方案,但现在我在firebug中有400个错误请求,我处理了它,但它看起来不正确nice@donatello这就是将状态设置为400的全部意义;)它在firebug中看起来不好一点都不重要。关键是请求在某个点上失败了,应该这样处理。
$.ajax( '/your/url').error(function (jqXHR) {
    if (jqXHR.status == 400) {
        console.log('Bad Request');
    }
});