Ajax 响应码200,但回调error

最近有一个朋友问了我些问题,有个问题的原因出在ajax的使用上,具体的状况是,ajax请求值后台接口可以收到,响应200后,success未收到响应值,一般来说响应出200未报错,但是未回调success,那就大多就进入到error了,然后在 error中 alert(),确定确实回调在了 error函数。然后使用浏览器network检验到返回值为 html串,但是 实际上 dataType:json,这就是确定了问题。

想着总结下,就百度了不少写的很好的博客。算是拾人牙慧了。有以下几种情况:

1、dataType与响应类型不一致

这是最常见的问题,比如上面的问题,返回的为 html格式,但是定义的是 json格式,就会回调 error()。一般使用 dataType:json 较多,一定要注意返回值为标准的json格式,有时候多个换行符,或者中文逗号也会回调error()。

 

2、async请求同步异步问题

这个我也遇到过,ajax默认是异步的(async:ture)。若是做些判断类的需求,明确是同步顺序,一定加上 async:false。

 

3、ajax请求跨域  

这个没有遇到过,博客搜到的会造成上述问题。

 

4、 data不能不写

   data为空也一定要传"{}";不然返回的是xml格式的。并提示parsererror. data:"{}"

   parsererror的异常和Header 类型也有关系。及编码header('Content-type: text/html; charset=utf8');

 

5. 传递的参数

    必须是ajax支持的编码格式

 

6. URL路径问题

    路径不能有中文

 

3、4、5、6都是网上搜到了,没遇到过也未验证过。

 

jquery ajax dataType类型

对于 dataType看了 jquery的文档有下几种形式

 

jquery ajax 回调函数

 

看了 jquery关于ajax部分的文档,发现自己以前只是用了些皮毛,略知一点点,以后还是多看文档,多使用啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值