dataType和ajax问题

J2EE 码拜 9年前 (2016-03-19) 1048次浏览
这是一个复选框批量处理问题,在jsp页面中,假如加上dataType:”json”, 数据返回的结果就是操作失败,虽然失败但是后台数据是确实执行了,所以这个失败的状态是假的,原因是已经达到了目的。假如去掉dataType:”json”, 就是返回是成功,但是被选中的复选框只会执行两条,明显是错误的。本人想问的是怎么样在有dataType:”json”, 的情况下,依然可以成功执行。恳请各位大哥帮忙,谢谢。
{dataType和ajax问题
<script type=”text/javascript”>
function checkall(options)
var arr=new Array();
var obj = document.getElementsByName(“getmid”);
for(var i=0;i<obj.length;i++){
if(obj[i].checked==true){
arr.push(obj[i].value);
}
}
bootbox.confirm(“确定提交操作?”, function(result) {
for(var j=0;j<arr.length;j++){
var id=arr[j];
if(result) {

$.ajax({
type: “post”,
url:”${ctx}/applyCUD?oper=checks”,
data:{id:id},
dataType:”json”,
async: false,
error: function(request) {
$.gritter.add({title: “提示!”,text: “操作失败.请刷新后重试.”,class_name: “gritter-warning”});
},
success: function(data) {
if(data==”success”){
$.gritter.add({title: “提示!”,text: “操作成功.”,class_name: “gritter-success”});
location.reload();
}   }
});
}}
});
}
</script>
////////////////////////////////////后台Controller///////////////////////////////////////////
@RequestMapping(value = “/applyCUD”)
@ResponseBody
public String applyCUD(@ModelAttribute Apply apply, String oper,Model model, HttpSession session) {
if (Constant.OPER_CHECKS.equalsIgnoreCase(oper)) {
Apply _apply = applyService.get(apply.getId());
if (_apply.getApplyStatus() == 1) {
_apply.setApplyStatus(2l);
Long sysUserId = (Long) session
.getAttribute(Global.SESSION_CURRENT_USER_ID);
SysUser sysUser = sysUserService.get(sysUserId);
_apply.setSysUser(sysUser);
// 系统生成邀请码
List<Invitation> invitations = invitationService
.invitation(null, sysUserService.get(Long
.parseLong(session.getAttribute(
Global.SESSION_CURRENT_USER_ID)
.toString())), 1,-1);
try {
httpClientManager.send(_apply.getPhone(),
“感谢您对G客的关注;您的申请已获通过,您的邀请码是”
+ invitations.get(0).getCode()
+ “,请尽快注册并登录到G客APP,谢谢!”);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (_apply.getApplyStatus() == 2) {
_apply.setApplyStatus(1l);
}
applyService.save(_apply);
return “success”;
}

解决方案

40

dataType是服务器返回的的数据的类型,你后台返回的是一字符串,你页面判断也是比较的字符串,你假如非要加上dataType:json的话,可以在后台吧那个返回值sucess转成json对象,这样 就跑的通了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明dataType和ajax问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)