ajax返回成功但是为什么还是进入了eoorr?

jQuery.ajax({
url:'http://192.168.1.100:8080/hehe/modifyPass2',
//data:{resetKey:$.getUrlParam('resetKey'), password:$("#newpass").val()},
data:{resetKey:1, password:$("#newpass").val()},
type:'POST',
dataType:"json",
async: false,
success:function(data){
console.log(data);
$("#modifySuccess").css({'display':'inline'});
$("#modifySuccess").html(data.result);
},
error:function(){
alert("hehe");
}
});

现在的情况:浏览器中输入http://127.0.0.1:8080/hehe/modifyPass2

得到的是{"result":true,"discribe":"修改密码成功,你可以使用新密码登陆"}

客户端jquery调用,在firebug中看到的情况是,
若dataType:"json",则状态是200 OK,响应数据是空,调试的话,不执行success而是弹出hehe。
若dataType:"script",同样的则状态是200 OK,调试的话,不执行success而是弹出hehe,但是响应数据能看到是{"result":true,"discribe":"修改密码成功,你可以使用新密码登陆"}

8个回答

看你返回json格式是对的,应该是跨域了,跨域了200但是得不到返回的结果。script加载直接是json会出错,json不是js代码,不知道什么是跨域详细自己百度,简单说是一个域请求另外一个域(端口,协议不一样也算跨域)

看看是不是打开了防火墙?

直接用ajax提交表单好像地址栏会带参数的,就算写了post提交方式,具体原因不明,然后服务端返回数据找不到地址。我以前是先调用jquery的validate验证插件,在主方法里面再写ajax内容解决问题。

去掉dataType:"json"试试

data格式不对,你的dataType写的是json 但你传给后台的值,也就是你的data是json吗? 建议你百度好好看一下,json的格式。 键加“” ,如下: data:{"resetKey":1, "password":$("#newpass").val()},

明显是data的格式错误

1.data格式有问题;2.查看服务端程序是不是后面有错误,有时候先返回数据之后,后面代码有错误也会报错,具体看情况

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问