Ajax spring mvc检查BindingResult是否在javascript响应中
如果Controller返回带有验证错误的视图,是否有明确的方法签入ajax成功响应 控制器: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
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
作为字符串化的Jsonmodel.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');
}
});