Ajax中的 “success” 与 “error ”回调函数何时调用 ?
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 ”回调函数何时调用 ?相关推荐
- vue 执行函数this_在vue中使用回调函数,this调用无效的解决
let self = this //使用新变量替换this,以免this无效 //updatestudentinfotoserver是一个将本身部分数据异步上传的接口,接收三个参数,其中第一个是数据, ...
- 单片机程序中,Modbus功能码的回调函数如何编写--FreeModbus从站设计(10)
FreeModbus从站设计(10)-Modbus功能码的回调函数如何编写 关键词:FreeModbus CubeMX HAL库 串口 功能码 此系列的前面几篇文章,主要是阐述了用HAL库生成keil ...
- Ajax请求成功却执行error回调方法(Ajax跨域请求问题)
遇到的问题描述: Ajax使用post请求添加分组,请求url是RESTful风格.添加成功了已经向数据库写入了信息,但是Ajax却执行了error回调,观察网络发现有两次相同请求一次是get请求,一 ...
- 服务器响应回调函数,解决有关flask-socketio中服务端和客户端回调函数callback参数的问题(全网最全)...
由于工作当中需要用的flask_socketio,所以自己学习了一下如何使用,查阅了有关文档,当看到回调函数callback的时候,发现文档里都描述的不太清楚,最后终于琢磨出来了,分享给有需要的朋友 ...
- electron中showMessageBox里关于选择按钮回调函数不执行的错误
一般程序在用户点击窗口右上角关闭按钮时会弹出一个对话框,用来询问用户是否退出程序,用户点击取消或者关闭对话框不会关闭程序,点击确定则会退出程序.在写electron应用时也希望添加这个功能,代码如下: ...
- JAVA学习第五篇--java中对象的创建过程以及函数的调用过程
下面本文将详细介绍java语言中对象的创建过程,以及函数的调用过程. class Person{public String name="zhao";public int ege;p ...
- 关于进行ajax中error回调函数出现XMLHttpRequest status = 0的问题
最近在进行ajax与后台通信时,本身ajax写法没问题,但是错误代码却出现了,如下: com.ajax({ url: '/api/sys/Department/Edit ...
- .net中前台javascript与后台c#函数相互调用
1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1 ...
- ajax五种回调函数,Ajax的回调函数
一,为什么要使用回调函数? 首先我们应该明白我们为什么要用回调函数?我们用它能解决什么样的问题. function d(){} (function(){ (function(){ var temp = ...
- ipset源代码分析之kadt和uadt回调函数
一定要清楚自己在干什么,每行代码在干什么,这样写的代码才能做到心中有数. 之前看到ip_set_hash_ip.chash_ip4_uadt和hash_ip4_kadt函数,就一直很好奇这两个函数是干 ...
最新文章
- python del函数_python del函数是什么以及如何使用?
- 如果有机会,买一个能够兼容多终端的大屏幕是很重要的
- 从技术输出到产业赋能,网易云信走过的四年
- 启动物联网智能校园,NFC技术可变出哪些创新应用?
- Linux命令之su -- 用于切换当前用户身份到其他用户身份
- 洛克王国进不去 不显示服务器,《洛克王国》FAQ:注册和登陆问题
- 服务器按ctrl alt delete没有用_用完这些快捷键,我再也回不去了(Win系统篇)
- MYSQL - database 以及 table 的增删改查
- Futter基础第16篇: 实现单行文本框、多选框
- 学c语言前要了解什么软件,学习c语言需要什么软件?
- 我的世界java手机_我的世界Java安卓版下载_我的世界Java手机版官方下载_牛游戏网...
- 网页访问报错This request has been blocked; the content must be served over HTTPS.
- 弹性公网IP ping不通?
- java 新浪短网址生成器_新浪短网址链接生成器 2020最新新浪t.cn短链接在线生成接口推荐...
- Qgis系统教程1:软件安装
- WPF GridSplitter中需要设置HorizontalAlignment和VerticalAlignment
- All flavors must now belong to a named flavor dimension. Learn more at https://
- 如何快速传输大文件,介绍大文件快速方法
- 3.4只读存储器ROM
- 唯品会资深架构师官华:实现电商平台从业务到架构的治理体系
热门文章
- CH340国产USB转异步串口芯片替代CP2102对比CH340C与CH340G
- 饥荒联机版服务器搭建_饥荒联机版(Don't Starve Together)专用服务器搭建教程
- 对于electron-react-boilerplate(ERB)的学习笔记
- javascript 逗号隔开的字符串 转数组
- ipsec-tools之racoon搭建
- 网络安全策略管理架构
- 数据结构初步(十二)- 插入排序与希尔排序超详细图解分析
- Wiradius计费系统功能说明
- “抖快”拯救不了服装业,起死回生仍需依靠数字化
- OpenGL学习---高级光照---法线贴图