1 $(function(){ 2 //設置全局 jQuery Ajax全局參數 3 $.ajaxSetup({ 4 type:"POST", 5 async:false, 6 cache:false, 7 dataType:"JSON", 8 error:function(jqXHR,textStatus,errorThrown){ 9 switch(jqXHR.status){ 10 case(500): 11 alert('服務器系統內部錯誤'); 12 break; 13 case(401): 14 alert('未登錄'); 15 break; 16 case(403): 17 alert("無權限執行此操作"); 18 break; 19 case(408): 20 alert("請求超時"); 21 break; 22 default: 23 alert("未知錯誤"); 24 } 25 }, 26 success:function(data){ 27 alert('操作成功!'); 28 } 29 }) 30 })
當設置該屬性后,在其他jQuery沒有設置的ajax中,默認使用該設置。
.ajaxStart()
在ajax請求剛開始時執行一個處理函數。
每當一個ajax請求即將發送,jQuery檢查是否有任何其他響應過程中的ajax請求(注:未完成的請求)。如果沒有檢查到,jQuery就會觸發ajaxStart事件,在這個時間點所有處理函數都會使用.ajaxStart()方法注冊並執行。
請注意以下代碼的執行結果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>
<script>
$(document).ajaxStart(function(){
$('.log').text("Trigger ajaxStart handler.");
console.log(1);
});
$('.trigger').click(function(e){
console.log(2);
$('.result').load('ajax/test.html');
});
$(document).ajaxSuccess(function(e){
console.log(31);
});
$(function(){
//設置全局 jQuery Ajax全局參數
$.ajaxSetup({
type:"POST",
async:false,
cache:false,
dataType:"JSON",
beforeSend:function(){
console.log(4)
},
error:function(jqXHR,textStatus,errorThrown) {
switch (jqXHR.status) {
case(500):
alert('服務器系統內部錯誤');
break;
case(401):
alert('未登錄');
break;
case(403):
alert("無權限執行此操作");
break;
case(408):
alert("請求超時");
break;
case(404):
alert('地址錯誤');
break;
default:
alert("未知錯誤");
}
},
success:function(data){
//alert('操作成功!');
console.log(3);
}
})
})
</script>
</body>
</html>
運行結果:

也就是說方法調用順序如下:
ajax請求代碼之前的代碼
ajaxStart
beforeSend
success
ajaxSuccess
https://blog.csdn.net/zhao1949/article/details/52787124
jQuery中各個事件的執行順序如下:
1.ajaxStart (全局事件)
2.beforeSend
3.success
4.ajaxSuccess
5.error
6.ajaxError (全局事件)
7.complete
8.complete
9.ajaxComplete (全局事件)
10.ajaxStop (全局事件)
先執行success,再執行error???,最后始終執行complete
區別是:
success:當請求成功時調用函數,即status==200
complete:當請求完成時調用函數,即status==404、403、302……只要不出錯就行。
因為通常我們需要用來清理資源,所以就設計成complete在success之后執行。
