ajax mvc error,spring mvc ajax success不执行 反倒执行error

问题描述:spring mvc中前端使用ajax发送请求,后台使用@ResponseBody直接写数据到响应体中,

返回一个字符串,ajax的success回调函数不执行,反而执行error的回调函数

上代码:

ajax请求:

$.ajax({

url:"/eCommerceSSM/updateAdmin",

type:"put",

data:JSON.stringify({admin_id:$("#form_update_admin input[name='admin_id']").val(),

admin_name:$("#form_update_admin input[name='admin_name']:not(:disabled)").val(),

admin_password:$("#form_update_admin input[name='pwd']:not(:disabled)").val()

}),

dataType:"json",

contentType: "application/json;charset=utf-8",

success:function(data){

console.log("update admin is returned");

console.log("======"+data.msg+",");

//修改失败

alert(data.msg+"---ddddd");

if(data.msg=="fail"){

alert("修改失败,可能用户名已被占用");

}else{

alert("修改成功");

showAdminList(curPage,pageSize);

$("#updateAdmin").modal("hide");

}

},error:function(error){

console.log(error);

//此处可以打印出响应的信息,响应状态也是200,响应的字符串也存在属性responseText中,数据库修改成功了

}

})

controller:

//修改admin

@RequestMapping(value="/updateAdmin",method=RequestMethod.PUT)

@ResponseBody

public String updateAdmin(@RequestBody Admin admin) {

String msg=null;

System.err.println("new admin:"+admin);

if(as.updateAdminPart(admin)>0) {

System.err.println("修改admin成功。。。。");

msg="success";

}else {

System.err.println("修改admin失败.......");

msg="fail";

}

return msg;

}

我的项目中相关配置:

//将spring mvc的响应对象自动转成json格式

com.fasterxml.jackson.core

jackson-databind

2.9.5

最后问题的解决:

将controller中代码返回值改成ModelMap,将响应的字符串放入

//这个问题的造成原因:  data:JSON.stringify({admin_id:$("#form_update_admin input[name='admin_id']").val(),

admin_name:$("#form_update_admin input[name='admin_name']:not(:disabled)").val(),

admin_password:$("#form_update_admin input[name='pwd']:not(:disabled)").val()

})

为什么怀疑是这个呢?因为我有一个添加的ajax请求,data也是使用JSON.stringify()进行的转换,也会出现响应成功了,但是不执行success的回调函数;

我将data的JSON.stringify()去掉就用普通的data:{}形式就可以正常的执行success

//希望能帮到你。。们

来源:https://www.cnblogs.com/gqblogs/p/springmvc-ajax-art1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值