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断点来查看.
------解决方案--------------------楼主自己找到原因了,只好接分了.