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方法:

    1. 返回数据类型不是JSON
    2. 网络中断
    3. 后台响应中断
    返回JSON格式引发parsererror错误:

    很多时候会遇到明明成功请求到后台,后台也返回了数据到前端,http状态是200,却发生parsererror错误,并不执行success方法。

    这是因为:jquery1.4版本以后对json格式要求非常严格了,要满足json.org网站定义的格式才能执行success回调,否则都会出错,无法解析返回的json数据。

    JSON格式总结下,详细的去json.org 查看。
    1)键名称:用双引号 括起
    2)字符串:用双引号 括起
    3)数字,布尔类型不需要 使用双引号 括起

    例如:返回的是{success:true,id:1} 这种不规则的字符串,不是严格的json格式,改成{"success":true,"id":"1"} 就可以正常执行success回调了。



  • 相关阅读:
    visual studio 安装相关
    网站性能测试工具体[转]
    javascript使用小技巧
    代码复用(转)
    Sql Server 2005 服务器性能监视[转]
    dropdownlist
    C#中用SharpZipLib.dll实现压缩解压2
    过滤非法字符
    C#中用SharpZipLib.dll实现压缩解压
    详解DNS安装及配置多个二级域名的三种方法(图文教程) (转)
  • 原文地址:https://www.cnblogs.com/edwardwzw/p/13186003.html
Copyright © 2011-2022 走看看