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之后執行。