Ajax詳解及使用Ajax時的傳回值類型有哪些?

來源:互聯網
上載者:User

標籤:核心   參數   服務   var   自動   jquer   求和   請求方式   javabean   

Ajax詳解

Ajax = 非同步 JavaScript 和 XML。

Ajax 是一種用於建立快速動態網頁的技術。

通過在後台與伺服器進行少量資料交換,Ajax 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。

傳統的網頁(不使用 Ajax)如果需要更新內容,必需重載整個網頁面。

(註:圖片來自網路)

如何使用Ajax技術

首先,需要擷取XMLHttpRequest對象:

var xhr;xhr = new XMLHttpRequest();

XMLHttpRequest對象有5個核心屬性:

  • onreadystatechange:當準備狀態發生變化
  • readyState:準備狀態,該屬性的值可能是0~4之間的數字,0表示尚未建立串連,4表示接收到響應
  • status:響應碼,例如404、200
  • responseText:響應的字串
  • responseXML:響應的XML

當需要發出請求時,需要XMLHttpRequest對象的open()send()方法:

  • open(請求方式, 請求路徑, 是否非同步)
  • send()

使用示範:

// 非同步檢查使用者名稱是否存在function checkUsername(username) {    // 擷取XMLHttpRequest對象    var xhr = new XMLHttpRequest();    var url = "check_username.do?username="            + username;    // 配置onreadystatechange    xhr.onreadystatechange = function() {        // 當伺服器已經響應(4)且響應碼是200時        if (xhr.readyState == 4                && xhr.status == 200) {            // 根據伺服器的響應,顯示響應的提示訊息            if (xhr.responseText == "1") {                // 表示使用者名稱存在                document.getElementById("username_hint").innerHTML= "使用者名稱正確";            } else {                // 表示使用者名稱不存在                document.getElementById("username_hint").innerHTML= "使用者名稱不存在";            }        }    };    // 調用函數    xhr.open("GET", url, true);    xhr.send();}

在JQuery中,Ajax有三種實現方式:

$.ajax({    "url":"",   //訪問路徑    "data":"",  // 需要傳輸的資料    "type":"",  // 請求方式    "dataType":"",  // 傳回值類型    "success":function(obj){},      // 響應成功時的回呼函數    "error":function(obj){}     // 響應失敗時的回呼函數});$.get(URL,callback);$.post(URL,data,callback);

(註:以下內容來自https://www.cnblogs.com/fly-xfa/p/5851746.html)

使用Ajax時的傳回值類型有哪些?
xml、html、script、JSON、jsonp、text
  • xml:返回XML文檔,可用 jQuery 處理。

  • html:返回純文字HTML資訊;

  • script:返回純文字JavaScript代碼。不會自動緩衝結果。除非設定了 “cache” 參數;

  • json:json方式和html方式在請求和伺服器中完全是一樣,請求的傳回值實際上都是String對象,有兩點不同,第一:html方式的時候並沒有限制返回的字串格式,而json方式的時候,必須符合json協議的規範。第二:html方式請求完成之後沒有做任何的操作直接回調sucuess,而json多了一步就是加了eval,執行返回的字串,看看源碼data = eval_r("(" + data + ")");返回json對象;(方法的傳回值是Javabean時,在響應體中響應成json字串格式)

  • jsonp:jsonp方式的互動方式和js是一樣的,本身xmlHttpRequest對象並不能跨域訪問,但是script標籤的src可以跨域訪問,這裡就注意兩個概念:第一Ajax是不能跨網域作業的,第二jQuery的jsonp是可以跨網域作業,jsonp到底是什麼東西呢?他是一個非官方的定義,目前的規範,需要伺服器和用戶端進行配合使用;

  • text:返回純文字字串。

Ajax詳解及使用Ajax時的傳回值類型有哪些?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.