Jquery Ajax基本结构

$.ajax({          url:"发送请求(提交或读取数据)的地址", dataType:"预期服务器返回数据的类型",  type:"请求方式", async:"true/false",data:{发送到/读取后台(服务器)的数据},success:function(data){请求成功时执行},      error:function(){请求失败时执行}
});

一个 jquery ajaxs示例

    $(function(){//请求参数var list = {};//$.ajax({//请求方式type : "POST",//请求的媒体类型contentType: "application/json;charset=UTF-8",//请求地址url : "http://127.0.0.1/admin/list/",//数据,json字符串data : JSON.stringify(list),//请求成功success : function(result) {console.log(result);},//请求失败,包含具体的错误信息error : function(e){console.log(e.status);console.log(e.responseText);}});});

Ajax请求通过XMLHttpRequest对象发送请求,

该对象有五个状态(readyState):

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

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

ajax的success和error方法根据响应状态码来触发。

当XMLHttpRequest.status为200的时候,表示响应成功,此时触发success().

其他状态码则触发error()。

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

返回数据类型不是JSON

网络中断

后台响应中断

返回JSON格式引发parsererror错误

很多时候会遇到明明成功请求到后台,后台也返回了数据到前端,htttp状态是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回调了。

参考 :

  • https://blog.csdn.net/Yuan_mingyu/article/details/86748591
  • https://www.cnblogs.com/kunmomo/p/12849753.html

Ajax中的 “success” 与 “error ”回调函数何时调用 ?相关推荐

  1. vue 执行函数this_在vue中使用回调函数,this调用无效的解决

    let self = this //使用新变量替换this,以免this无效 //updatestudentinfotoserver是一个将本身部分数据异步上传的接口,接收三个参数,其中第一个是数据, ...

  2. 单片机程序中,Modbus功能码的回调函数如何编写--FreeModbus从站设计(10)

    FreeModbus从站设计(10)-Modbus功能码的回调函数如何编写 关键词:FreeModbus CubeMX HAL库 串口 功能码 此系列的前面几篇文章,主要是阐述了用HAL库生成keil ...

  3. Ajax请求成功却执行error回调方法(Ajax跨域请求问题)

    遇到的问题描述: Ajax使用post请求添加分组,请求url是RESTful风格.添加成功了已经向数据库写入了信息,但是Ajax却执行了error回调,观察网络发现有两次相同请求一次是get请求,一 ...

  4. 服务器响应回调函数,解决有关flask-socketio中服务端和客户端回调函数callback参数的问题(全网最全)...

    由于工作当中需要用的flask_socketio,所以自己学习了一下如何使用,查阅了有关文档,当看到回调函数callback的时候,发现文档里都描述的不太清楚,最后终于琢磨出来了,分享给有需要的朋友 ...

  5. electron中showMessageBox里关于选择按钮回调函数不执行的错误

    一般程序在用户点击窗口右上角关闭按钮时会弹出一个对话框,用来询问用户是否退出程序,用户点击取消或者关闭对话框不会关闭程序,点击确定则会退出程序.在写electron应用时也希望添加这个功能,代码如下: ...

  6. JAVA学习第五篇--java中对象的创建过程以及函数的调用过程

    下面本文将详细介绍java语言中对象的创建过程,以及函数的调用过程. class Person{public String name="zhao";public int ege;p ...

  7. 关于进行ajax中error回调函数出现XMLHttpRequest status = 0的问题

    最近在进行ajax与后台通信时,本身ajax写法没问题,但是错误代码却出现了,如下: com.ajax({                 url: '/api/sys/Department/Edit ...

  8. .net中前台javascript与后台c#函数相互调用

    1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1 ...

  9. ajax五种回调函数,Ajax的回调函数

    一,为什么要使用回调函数? 首先我们应该明白我们为什么要用回调函数?我们用它能解决什么样的问题. function d(){} (function(){ (function(){ var temp = ...

  10. ipset源代码分析之kadt和uadt回调函数

    一定要清楚自己在干什么,每行代码在干什么,这样写的代码才能做到心中有数. 之前看到ip_set_hash_ip.chash_ip4_uadt和hash_ip4_kadt函数,就一直很好奇这两个函数是干 ...

最新文章

  1. python del函数_python del函数是什么以及如何使用?
  2. 如果有机会,买一个能够兼容多终端的大屏幕是很重要的
  3. 从技术输出到产业赋能,网易云信走过的四年
  4. 启动物联网智能校园,NFC技术可变出哪些创新应用?
  5. Linux命令之su -- 用于切换当前用户身份到其他用户身份
  6. 洛克王国进不去 不显示服务器,《洛克王国》FAQ:注册和登陆问题
  7. 服务器按ctrl alt delete没有用_用完这些快捷键,我再也回不去了(Win系统篇)
  8. MYSQL - database 以及 table 的增删改查
  9. Futter基础第16篇: 实现单行文本框、多选框
  10. 学c语言前要了解什么软件,学习c语言需要什么软件?
  11. 我的世界java手机_我的世界Java安卓版下载_我的世界Java手机版官方下载_牛游戏网...
  12. 网页访问报错This request has been blocked; the content must be served over HTTPS.
  13. 弹性公网IP ping不通?
  14. java 新浪短网址生成器_新浪短网址链接生成器 2020最新新浪t.cn短链接在线生成接口推荐...
  15. Qgis系统教程1:软件安装
  16. WPF GridSplitter中需要设置HorizontalAlignment和VerticalAlignment
  17. All flavors must now belong to a named flavor dimension. Learn more at https://
  18. 如何快速传输大文件,介绍大文件快速方法
  19. 3.4只读存储器ROM
  20. 唯品会资深架构师官华:实现电商平台从业务到架构的治理体系

热门文章

  1. CH340国产USB转异步串口芯片替代CP2102对比CH340C与CH340G
  2. 饥荒联机版服务器搭建_饥荒联机版(Don't Starve Together)专用服务器搭建教程
  3. 对于electron-react-boilerplate(ERB)的学习笔记
  4. javascript 逗号隔开的字符串 转数组
  5. ipsec-tools之racoon搭建
  6. 网络安全策略管理架构
  7. 数据结构初步(十二)- 插入排序与希尔排序超详细图解分析
  8. Wiradius计费系统功能说明
  9. “抖快”拯救不了服装业,起死回生仍需依靠数字化
  10. OpenGL学习---高级光照---法线贴图