ajax datatype_Ajax 执行成功以后走的是error方法而不是success方法的问题

今天在一个功能的时候发现写的ajax的方法执行后台代码成功后返回前台时执行的是error方法而不是success方法,代码如下

fc5c74aee7024a1a8c77e72678424582

以前也会这么写的,就没有什么问题,调试了好久,还是走的error方法,最后发现,当dataType为“json”而返回的又不是json时,肯定会出错,所以若返回的类型不是json,这一个属性可以不填。而我从后台返回的数据不是json格式的,所以会走error,而不是走的success方法,最终将dataType的属性给去掉就正常走success方法了。

在解决这个问题的过程中,通过网上查询,发现也有其他原因导致这个问题的出现,现总结如下

Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState):

0-未初始化、1-正在初始化、2-发送数据、3-正在发送数据、4-完成。

当XMLHttpRequest.readyState为4时,表示ajax请求已经完成可以得到响应结果。

ajax的success和error方法根据响应状态码来触发。当XMLHttpRequest.status为200的时候,表示响应成功,此时触发success().其他状态码则触发error()。

除了根据响应状态码外,ajax还会在下列情况下走error方法:

1. 返回数据类型不是JSON

2. 网络中断

3. 后台响应中断

可以知道,竟然后台的代码都执行了,那状态码肯定是已经经过了这4个的,所以问题不在这。

以上就我遇到这个问题时到解决这个问题的总结,希望对大家有所帮助,也希望自己能够引以为戒,多思考,避免这种小错误的出现。

216c67e8c729466da55fc6a725f3dec6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值