0

是否有一种明确的方法来检查 ajax 成功响应控制器是否返回带有验证错误的视图?

控制器:

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

javascript:

$.ajax({
        url : "<spring:url value="/place/add"/>",
        type : 'POST',
        data : $("#newPlaceForm").serialize(),
        success : function(response) {

如何检查响应是否没有验证消息?

4

3 回答 3

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);
     }
于 2013-07-27T11:14:49.100 回答
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为字符串化的 Jsonmodel.addAttribute("status", "{\"status\": \"OK\"}");

于 2013-07-27T11:29:09.010 回答
0

生成一个 HTTP 响应代码来指示错误更清楚。

例如:response.sendError(400, "Validation failed")

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

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

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

于 2013-07-27T17:20:42.883 回答