日期:2014-05-16  浏览次数:20386 次

Jquery ajax请求后台成功,但没返回值
我用ajax做一个增加,增加成功了。但后台响应的值前台没有得到,或者说success;function()没有执行。不知为何,求解?
代码如下:
$.ajax({
  url:"<%=basePath%>pmtUsers/addProjUser.do",
  Type:"POST",
  //data:$("#form1").serialize(),
  data:"projNo="+$("#txtProjNo").val()+"&userId="+$("#txtPersonId").val(),
  dateType:"json",
  success:function(da){
  alert(da);
  var d = eval('('+da+')');
if(d.opResult=="OK"){
alert("添加成功!");
if($("#conAdd").attr("checked")) {
  $("#txtProjNo").value("");
  $("#txtProjName").text("");
  $("#txtPerson").value("");
  $("#txtServlet").text("");
  $("#txtPersonId").value("");
  } else {
  window.close();
  }
} else if(d.opResult=="ObjExsit"){
alert("该用户已存在项目中!");
return false;
} else {
alert("添加失败,请稍后再试!");
}

  },
  error:function(status){
  alert(status);
  alert("添加失败,请稍后再试!");
  }
  });
------解决方案--------------------
你的请求路径是否正确,你可以通过开发人员工具-》网络 监视下提交请求,看看请求状态和返回值是什么,一目了然.
------解决方案--------------------
没执行success,那进入到error了吗?你的后台返回的数据是json格式的吗?
------解决方案--------------------
方一
你把dateType : "json",   改成dateType : "text"


方二
1,你用那个版本的jQuery.
2.  你后台返回,是不是标准的json       {"ss":"cc"}
新版的不用eval('(' + da + ')');    已经是json Object


------解决方案--------------------
dateType:"json",
  success:function(da){
  alert(da);
  var d = eval('('+da+')');

指定为json,da参数就已经是json对象了,在eval就报错鸟


1.4+的jquery返回怪异模式的json格式字符串也不会执行success回调
------解决方案--------------------
其他的都是这么处理的,那么你换一个正常的地址,看是否是正确的,是否是路径的问题,是否在调用AJAX之前,你原来的JS本来就有错误,根本就没执行到这,你可以逐步alert();看看,走到哪一步停了,你也可以利用开发者人员工具来设置JS断点来查看.
------解决方案--------------------
楼主自己找到原因了,只好接分了.