jQuery Ajax和$.ajax jqXHR实现教程

普通的ajax事件,在开发过程中可能已经写过一个success,在后续的开发中可能我不想动之前写的success方法,想要重启一个success比如下面代码:
 代码如下复制代码

$('.btn').click(function () {
$.ajax({
type : 'post',
url : 'test.php',
data : $('form').serialize(),
success : function (data) {
console.log(data + '1');
},
success : function (data) {
console.log(data + '2');
}
});
});
测试结果是:

{"user":"admin","email":"1054770532@qq.com"}2

我们发现后面的success方法覆盖了前面的success方法,测试失败。那么有没有能够写多个success的方法呢?既然jquery能在全球广泛的被采用,这点小需求还是能满足的,这里就用到了今天的重点:jqXHR,先看一段代码了解什么事jqXHR

 代码如下复制代码

$('.btn').click(function () {
var jqXHR = $.ajax({
type : 'post',
url : 'test.php',
data : $('form').serialize()
});
jqXHR.success(function (data) {
console.log(data + '1');
});
jqXHR.success(function (data) {
console.log(data + '2');
});

});
结果如下:

{"user":"tuisiyuan","email":"1054770532@qq.com"}1
{"user":"tuisiyuan","email":"1054770532@qq.com"}2

由上我们不难发现所谓的jqXHR不过就是$.ajax的返回值,而且两个success方法都被顺序的执行了。

随之jquery版本的改善提高,以后jqXHR可能会弃用success,complete,error方法,而改用done,always,fail方法

 代码如下复制代码

$('.btn').click(function () {
var jqXHR = $.ajax({
type : 'post',
url : 'test.php',
data : $('form').serialize()
});
  
//done=>success,always=>complete,fail=>error
jqXHR.always(function (data) {
console.log('always:' + data);
}).done(function (data) {
console.log('done:' + data)
});
jqXHR.done(function (data) {
console.log('done:' + data);
});
jqXHR.fail(function (data) {
console.log('fail:' + data);
});

});

jqXHR可以连缀,执行多个done。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值