zoukankan      html  css  js  c++  java
  • ajax中什么时候进success和error

    先简单介绍下ajax:

    简单的说Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState):
    
    0-未初始化、1-正在初始化、2-发送数据、3-正在发送数据、4-完成。
    
    当XMLHttpRequest.readyState为4时,表示ajax请求已经完成可以得到响应结果。
    
    ajax的success和error方法根据响应状态码来触发。当XMLHttpRequest.status为200的时候,表示响应成功,此时触发success().其他状态码则触发error()。
    
    除了根据响应状态码外,ajax还会在下列情况下走error方法:
    
        返回数据类型不是JSON
    
        网络中断
    
        后台响应中断

     error:

    常见错误:

    1. dataType错误

       类型错误:后台返回的dataType类型和前台写的不一致会跳入error

       格式错误:jquery1.4之后对json的格式要求非常严格,json格式错误也会跳入error.{"test":1} 注意格式

       有时,在不需要返回值的情况下,扔按模板格式,设置了dataType:"json",参数;这时候,ajax传值正确时,出现200返回成功状态下报错的特殊情况。

      如果你在success中使用eval处理数据就是这个错误了!!!

    2. async请求同步异步问题

        async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false

    3. data不能不写

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

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

    4. 传递的参数

        必须是ajax支持的编码格式

    5. URL路径问题

        路径不能有中文

  • 相关阅读:
    vmware中三种网络连接方式
    【史上最全面经】各岗位汇总目录
    史上最全2019届秋招备战攻略
    程序员常用软件
    经典大数据面试题
    春招实习终于结束啦
    Java程序员自我介绍
    java一些面试题
    收割大厂offer需要具备的条件
    triangular distribution
  • 原文地址:https://www.cnblogs.com/zouhong/p/11798503.html
Copyright © 2011-2022 走看看