$.ajax({})方法success,error,complete,beforeSend使用例子及解釋

在與後臺交互的時候,常用到jquery的$.ajax()方法來請求數據;javascript

回調函數用的比較多的是success,可是complete、beforeSend、error函數也是頗有用的;php

下面是使用例子小結:html

html代碼:java

[html]  view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>ajax_demo</title>  
  6. </head>  
  7. <style>  
  8. .display{  
  9.     width:600px;  
  10.     height: 400px;  
  11.     border:1px solid;  
  12. }  
  13. </style>  
  14. <body>  
  15. <div class="box">展現數據區域:</div>  
  16. <div class="display"/></div>  
  17. <input type="button" value="點擊獲取數據" id="inp" onclick="getData()"/>  
  18. <script type="text/javascript" src="jquery.min.js"></script>  
  19. <script type="text/javascript" src="bootstrap.min.js"></script>  
  20. <script type="text/javascript">  

js代碼:jquery

[javascript]  view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. <script type="text/javascript">  
  2. function getData(){  
  3.   
  4.     $.ajax({  
  5.         url:'http://192.168.31.227/sfytjjk/wdaj/wdla.php',  
  6.         type:"post",  
  7.         timeout:5000,  
  8.         async:true,  
  9.         cache:true,  
  10.         data:"user_id=12&page=0",  
  11.         dataType:"json",  
  12.         contentType:"application/x-www-form-urlencoded",  
  13.         beforeSend:function(XMLHttpRequest){  
  14.             console.log(this);  
  15.             $("#inp").val("正在獲取數據...");   
  16.         },  
  17.         success:function(data){  
  18.             console.log(data);  
  19.             $(".display").html("獲取到的數據:</br>");  
  20.             $(".display").append("總條數:"+data.data.all_count);  
  21.             $("#inp").val("點擊獲取數據");   
  22.         },  
  23.         complete:function(XMLHttpRequest,textStatus){  
  24.             if(textStatus=='timeout'){  
  25.                 var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");  
  26.                 xmlhttp.abort();   
  27.                 $(".box").html("網絡超時!");  
  28.         }  
  29.             $("#inp").val("點擊獲取數據");   
  30.         },  
  31.         error:function(XMLHttpRequest, textStatus){  
  32.             console.log(XMLHttpRequest);  //XMLHttpRequest.responseText    XMLHttpRequest.status   XMLHttpRequest.readyState  
  33.             console.log(textStatus);  
  34.             $(".box").html("服務器錯誤!");  
  35.         }  
  36.     });  
  37.   
  38. /*  
  39. 經過捕捉error事件來獲取出錯的信息: 
  40. error: function(XMLHttpRequest, textStatus, errorThrown) { 
  41.  alert(XMLHttpRequest.status); 
  42.  alert(XMLHttpRequest.readyState); 
  43.  alert(textStatus); 
  44.  
  45. XMLHttpRequest.readyState: 狀態碼的意思 
  46. 0 - (未初始化)尚未調用send()方法 
  47. 1 - (載入)已調用send()方法,正在發送請求 
  48. 2 - (載入完成)send()方法執行完成,已經接收到所有響應內容 
  49. 3 - (交互)正在解析響應內容 
  50. 4 - (完成)響應內容解析完成,能夠在客戶端調用了 
  51.  
  52. status:返回的HTTP狀態碼,好比常見的404,500等錯誤代碼。 
  53. statusText:對應狀態碼的錯誤信息,好比404錯誤信息是not found,500是Internal Server Error。 
  54. responseText :服務器響應返回的文本信息 
  55.  
  56. complete: function (XMLHttpRequest, textStatus) {   
  57.     //textStatus的值:success,notmodified,nocontent,error,timeout,abort,parsererror   
  58. },   
  59. error: function (XMLHttpRequest, textStatus, errorThrown) {   
  60.     //textStatus的值:null, timeout, error, abort, parsererror   
  61.     //errorThrown的值:收到http出錯文本,如 Not Found 或 Internal Server Error.   
  62. }   
  63. */  
  64. }  
  65. </script>

原文連接:http://blog.csdn.net/qq_30337695/article/details/51373727ajax

相關文章
相關標籤/搜索