1. 有可能是因为跨域访问导致的,解决方式是使用jsonp,jquery的ajax有一个参数是jsonp,指定一个回调名称,巴拉巴拉后面当然还有好多后台操作之类的,就不介绍了;
2.前端ajax中的dataType指定类型和你后台返回的数据类型不一致导致,或者你的数据中有特殊字符导致
a.关于数据类型不一致的问题,我今天就遇到了,非常的蛋疼;前端我没有设置dataType那么就是默认的类型,我后台返回的是一个字符串:success或者failed来判断执行成功与否;然后问题就来了,各种firebug、httpwatch查看都有数据success返回,他大爷的就是不进入ajax的success;忙活了半天一查后段代码,发现了这个(注:本人使用的是java开发后端)
response.setContentType("text/javascript;charset=utf-8");
看到这个各种桑心啦,各种草它大爷呀。。。。这段代码怎么来的啦,为什么不是我想要的下面的代码啦:
response.setContentType("text/html;charset=utf-8");
原因是我偷了复制的上一个方法的代码,ou no。。。。所以就导致前后数据类型不一致而进入error了。
b. 有可能你前后数据类型是一致的但是还是进入error,那么就有可能你数据格式不正确了。比如json格式,是要严格按照格式来的,不要就出错,这个你要找一些验证json格式的工具来验证一下你返回的json数据格式正确否;还有一种可能是你json格式正确了,但是你json数据中有特殊字符,最最蛋痛的就是有回车之类的字符存在!