Jquery操作Ajax方法小結_jquery

來源:互聯網
上載者:User

ajax() 方法通過 HTTP 要求載入遠端資料。

該方法是 jQuery 底層 AJAX 實現。簡單易用的高層實現見 $.get, $.post 等。$.ajax() 返回其建立的 XMLHttpRequest 對象。大多數情況下你無需直接操作該函數,除非你需要操作不常用的選項,以獲得更多的靈活性。

最簡單的情況下,$.ajax() 可以不帶任何參數直接使用。

注意:所有的選項都可以通過 $.ajaxSetup() 函數來全域設定。

文法

jQuery.ajax([settings])

參數 描述
settings

可選。用於配置 Ajax 請求的索引值對集合。

可以通過 $.ajaxSetup() 設定任何選項的預設值。

jQuery.get()

  使用一個HTTP GET 請求從伺服器載入資料。

  jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [dtaType])

    url 一個包含發送請求的URL
    data 發送給伺服器的字串後索引值對
    success() 當請求成功時回調的函數
    dataType 從伺服器返回的預期資料。

  用法:

$.get("test.cgi", { name: "John", time: "2pm" },    function(data){      alert("Data Loaded: " + data);  });

jQuery.getJSON()

  使用一個HTTP GET 請求伺服器載入JSON 編碼的資料。

  jQuery.getJSON(url [,data] [,success(data,textStatus,jqXHR)])
    url 一個包含發送請求的URL
    data 發送給伺服器的字串後索引值對
    success() 當請求成功時回調的函數

jQuery.getScript()

  使用一個HTTP GET請求從伺服器載入並執行一個JavaScript檔案。
  jQuery.getScript(url[success(script,textStatus,jqXHR)])
    url 一個包含發送請求的URL
    data 發送給伺服器的字串後索引值對

  用法:

  $.getScript("ajax/test.js", function(data, textStatus, jqxhr) {    console.log(data); //data returned    console.log(textStatus); //success    console.log(jqxhr.status); //200    console.log('Load was performed.');  });

jQuery.post([settings])

  使用一個HTTP POST請求從伺服器載入資料。
  jQuery.post(url[,data][,success(data,textStatus,jqXHR)][,dataType])
    url 一個包含發送請求的URL
    data 發送給伺服器的字串後索引值對
    success() 當請求成功時回調的函數

  用法:

    $.post("test.php", { name: "John", time: "2pm" },      function(data) {        alert("Data Loaded: " + data);  });

.load()

  從伺服器載入資料並且將返回的HTML代碼並插入至匹配的元素中。

  .load(url[,data][,complete(responseText,textStatus,XMLHttpRequest)])
    url 一個包含發送請求的URL
    data 發送給伺服器的字串後索引值對
    complete 當請求成功時回調的函數

  用法:

$('#result').load('ajax/test.html #container');

jQuery.ajax()

  執行一個非同步HTTP(ajax)的請求。

  參數:

  url 類型: Sting 發送請求的地址(預設當前頁面)
  type 類型:Sting (預設為GET) 請求方式(”POST“或”GET“)
  timeout 類型:Number 佈建要求逾時時間(毫秒),此設定預設覆蓋全域。
  async 類型:Boolean 預設設定(true)預設設定下所有請求均為一步請求,如果需要同步請求,設定為false。
  beforeSend 類型:function 發送請求前可修改 XMLHttpRequest 對象的函數,如添加自訂 HTTP 頭。XMLHttpRequest 對象是唯一的參數。
  cache 類型:Boolean  預設為(true) 設定為false 將不會從瀏覽器緩衝中載入請求資訊。
  complete 類型:Function  請求完成後回呼函數,(請求成功或失敗時均調用)參數: XMLHttpRequest 對象,成功資訊字串。function (  XMLHttpRequest,            textStatus) {this; // the options for this ajax request}
  contentType  類型為:String  發送資訊至伺服器時內容編碼類別型,預設值適合大多數應用場合。
  data 類型:Object String 發送到伺服器的資料。將自動轉換為請求字串格式,GET請求附加在URL後
  dataType 類型:String 預期伺服器返回的資料類型, ”xml“返回XML文檔。”html“返回純文字資訊,包含script 元素。”script“返回純文字JavaScript 代碼,不會自動緩衝     結果。”json“返回JSON 數組。”jsonp“JSONP格式。
  error 類型:function 請求失敗時將調用此方法。
  global  類型:Boolean 是否觸發全域AJAX事件。預設為(true) 設定為false 將不會觸發全域ajax 事件,可用於控制不同的AJAX事件。
  ifModified 類型:Boolean  預設為false 僅在伺服器資料改變時擷取新資料。
  processData 類型:Boolean  預設為(true)預設情況下,發送的資料發送的資料將被轉換為對象(技術上講並非字串) 以配合預設內容類型 "application/x-www-form-            urlencoded"。如果要發送 DOM 樹資訊或其它不希望轉換的資訊,請設定為 false。
  success  類型:Function  請求成功後回呼函數。這個方法有兩個參數:伺服器返回資料,返回狀態。

$(document).ready(function() {    jQuery("#clearCac").click(function() {      jQuery.ajax({        url: "/Handle/Do.aspx",        type: "post",        data: { id: '0' },        dataType: "json",        success: function(msg) {          alert(msg);        },      error: function(XMLHttpRequest, textStatus, errorThrown) {        alert(XMLHttpRequest.status);        alert(XMLHttpRequest.readyState);        alert(textStatus);      },      complete: function(XMLHttpRequest, textStatus) {        this; // 調用本次AJAX請求時傳遞的options參數    }  });  });});

  error事件返回的第一個參數XMLHttpRequest有一些有用的資訊:

    XMLHttpRequest.readyState:

  狀態代碼

    0 - (未初始化)還沒有調用send()方法

    1 - (載入)已調用send()方法,正在發送請求

    2 - (載入完成)send()方法執行完成,已經接收到全部響應內容

    3 - (互動)正在解析響應內容

    4 - (完成)響應內容解析完成,可以在用戶端調用了

XMLHttpRequest.status:

1xx-資訊提示
這些狀態碼表示臨時的響應。用戶端在收到常規響應之前,應準備接收一個或多個1xx響應。
100-繼續。
101-切換協議。
2xx-成功
這類狀態碼表明伺服器成功地接受了用戶端請求。
200-確定。用戶端請求已成功。
201-已建立。
202-已接受。
203-非權威性資訊。
204-無內容。
205-重設內容。
206-部分內容。
3xx-重新導向
用戶端瀏覽器必須採取更多操作來實現請求。例如,瀏覽器可能不得不請求伺服器上的不同的頁面,或通過Proxy 伺服器重複該請求。
301-對象已永久移走,即永久重新導向。
302-對象已臨時移動。
304-未修改。
307-臨時重新導向。
4xx-用戶端錯誤
發生錯誤,用戶端似乎有問題。例如,用戶端請求不存在的頁面,用戶端未提供有效身分識別驗證資訊。400-錯誤的請求。
401-訪問被拒絕。IIS定義了許多不同的401錯誤,它們指明更為具體的錯誤原因。這些具體的錯誤碼在瀏覽器中顯示,但不在IIS日誌中顯示:
401.1-登入失敗。
401.2-伺服器配置導致登入失敗。
401.3-由於ACL對資源的限制而未獲得授權。
401.4-篩選器授權失敗。
401.5-ISAPI/CGI應用程式授權失敗。
401.7–訪問被Web伺服器上的URL授權策略拒絕。這個錯誤碼為IIS6.0所專用。
403-禁止訪問:IIS定義了許多不同的403錯誤,它們指明更為具體的錯誤原因:
403.1-執行訪問被禁止。
403.2-讀訪問被禁止。
403.3-寫訪問被禁止。
403.4-要求SSL。
403.5-要求SSL128。
403.6-IP地址被拒絕。
403.7-要求用戶端認證。
403.8-網站訪問被拒絕。
403.9-使用者數過多。
403.10-配置無效。
403.11-密碼更改。
403.12-拒絕訪問映射表。
403.13-用戶端認證被吊銷。
403.14-拒絕目錄列表。
403.15-超出用戶端訪問許可。
403.16-用戶端認證不受信任或無效。
403.17-用戶端認證已到期或尚未生效。
403.18-在當前的應用程式集區中不能執行所請求的URL。這個錯誤碼為IIS6.0所專用。
403.19-不能為這個應用程式集區中的用戶端執行CGI。這個錯誤碼為IIS6.0所專用。
403.20-Passport登入失敗。這個錯誤碼為IIS6.0所專用。
404-未找到。
404.0-(無)–沒有找到檔案或目錄。
404.1-無法在所請求的連接埠上訪問Web網站。
404.2-Web服務擴充鎖定策略阻止本請求。
404.3-MIME映射策略阻止本請求。
405-用來訪問本頁面的HTTP謂詞不被允許(方法不被允許)
406-用戶端瀏覽器不接受所請求頁面的MIME類型。
407-要求進行Proxy 驗證。
412-前提條件失敗。
413–請求實體太大。
414-請求URI太長。
415–不支援的媒體類型。
416–所請求的範圍無法滿足。
417–執行失敗。
423–鎖定的錯誤。
5xx-伺服器錯誤
伺服器由於遇到錯誤而不能完成該請求。
500-內部伺服器錯誤。
500.12-應用程式正忙於在Web伺服器上重新啟動。
500.13-Web伺服器太忙。
500.15-不允許直接請求Global.asa。
500.16–UNC授權憑據不正確。這個錯誤碼為IIS6.0所專用。
500.18–URL授權存放區不能開啟。這個錯誤碼為IIS6.0所專用。
500.100-內部ASP錯誤。
501-頁首值指定了未實現的配置。
502-Web伺服器用作網關或Proxy 伺服器時收到了無效響應。
502.1-CGI應用程式逾時。
502.2-CGI應用程式出錯。application.
503-服務不可用。這個錯誤碼為IIS6.0所專用。
504-網關逾時。
505-HTTP版本不受支援。
jQuery.param()
建立一個數組,一個普通的對象,或一個jQuery對象的序列化表現形似,用於URL查詢字串或Ajax請求。
jQuery.param(obj)
obj 一個用來序列化的一個數組,一個普通的對象,或一個jQuery對象。
jQuery.param( obj, traditional )
obj 一個用來序列化的一個數組,一個普通的對象,或一個jQuery對象。
traditional
一個布爾值,指示是否執行了傳統的“shallow”的序列化。
$.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4"
$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.