ajax設置默認值ajaxSetup()方法


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM