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路径问题

        路径不能有中文

  • 相关阅读:
    vim 打开了没有权限写入的文件,怎么才能不必重新编辑
    Linux 关闭终端响铃的特性
    Python 的 print 函数
    C 语言标准库中的qsort函数使用
    java知识学习14-面向对象
    java知识学习13-方法
    java知识学习12-数组
    mac格式化重装系统
    java知识学习11- IDEA
    java知识学习10-跳转控制语句(break/continue)、循环嵌套、Random
  • 原文地址:https://www.cnblogs.com/zouhong/p/11798503.html
Copyright © 2011-2022 走看看