我们在用Jquery进行项目开发时,对接后台用到最多的方式就是$.post()、$.get(),但参数只有3个:请求URL、传递参数、成功后事件,当我们需要对请求进行异步更改或者异常捕获时,但又不想重新封装$.ajax()方法时,可以这样写:$.post(…).error(function(){…});,当地址返回404、500等异常时,会执行error里面的代码。

例如下面的写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var jqxhr = $.post("/api/getLists", { code: code }, function() {
alert("success"); //成功回调
}).success(function() {
alert("second success"); //成功回调第二个方法
}).error(function() {
alert("error"); //异常回调(ex:500、404)
}).complete(function() {
alert("complete"); //完成调用事件(完成后最终执行)
});

// 在这里执行其他任务.
// 为上面的请求设置另一个完成函数.
jqxhr.complete(function(){
alert("second complete");
});

当我们需要设置$.post()、$.get()方法同步请求时,而又不想使用$.ajax()重写,可以如下设置:

1
2
3
4
5
$.ajaxSettings.async = false;  
$.post("/finance/getLastTimeCard", data, function(result) {
// 请求处理
});
$.ajaxSettings.async = true;

在请求之前把jquery的ajax方法设置为同步,执行完成后复原。