今天在写代码的时候发现一个小问题,ajax请求后台返回“SUCCESS”到前台时,前台判断时为false,即msg == “SUCCESS” 返回false,代码如下:
后台Java代码
@RequestMapping(value="save_info")
@ResponseBody
public String modifyInfo(HttpServletRequest request,ModelMap modelMap) {
String mString = "";
try {
... ...
int num = expertorsServices.updateExpertors(expertors);
if (num == 1)
mString = "SUCCESS";//修改成功返回SUCCESS
else
mString = "FAIL";//修改失败,返回FAIL
} catch (Exception e) {
e.printStackTrace();
mString = "FAIL";
}
// System.out.println(mString);
return mString;
}
前台ajax请求
var zname = $("#zname").val();
var zsex = $("#zsex[name='zsex']:checked").val();
var zdanwname = $("#zdanwname").val();
var ztelphone = $("#ztelphone").val();
var zhiwei = $("#zhiwei").val();
var zhichen = $("#zhichen").val();
$.ajax({
type:"post",
dataType:"text",
data:{"zname":zname,
"zsex":zsex,
"zdanwname":zdanwname,
"ztelphone":ztelphone,
"zhiwei":zhiwei,
"zhichen":zhichen
},
url:"save_info.dx",
success:function(msg){
if(msg == "SUCCESS"){//注意这个地方的返回值为false
layer.alert('修改成功!',{
title: '提示框',
icon:1,
});
}else{
layer.alert('修改失败!',{
title: '提示框',
icon:1,
});
}
},
error:function(){
layer.msg(msg,{icon: 6,time:1000});
}
});
没有找到原因,最终请教同事,在js代码注释的那行判断条件修改为
eval(msg) == "SUCCESS" 问题解决,记录一下,避免下次跳坑