1、ajax概述:html
AJAX(Asynchronous Javascript And XML)翻譯成中文就是「異步Javascript和XML」。即便用Javascript語言與服務器進行異步交互,傳輸的數據爲XML(固然,傳輸的數據不僅是XML)。java
AJAX還有一個最大的特色就是,當服務器響應時,不用刷新整個瀏覽器頁面,而是能夠局部刷新。這一特色給用戶的感覺是在不知不覺中完成請求和響應過程。它能使用js訪問服務器,並且是異步訪問!ajax
與服務器異步交互;json
瀏覽器頁面局部刷新;後端
服務器給客戶端的響應通常是整個頁面,一個html完整頁面!但在ajax中由於是局部刷新,那麼服務器就不用再響應整個頁面!而只是數據!瀏覽器
text:純文本服務器
xml:你們都熟悉!!!異步
json:它是js提供的數據交互格式,它在ajax中最受歡迎!ide
(用於發送請求,接收請求,處理請求)編碼
大多數瀏覽器都支持:var xmlHttp = new XMLHttpRequest();
IE6.0:var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
IE5.5以更早版本的IE:var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
經過方法獲取:
function createXMLHttpRequest() { try { return new XMLHttpRequest();// 支持大部分瀏覽器 catch (e) { try { return new ActiveXObject("Msxml2.XMLHTTP");// 使用ie6 } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP");// 使用ie5.5 } catch (e) { lert("你用的是什麼瀏覽器啊?"); throw e; } } } }
xmlHttp.open():用來打開與服務器的鏈接,它須要三個參數:
請求方式:能夠是GET或POST
請求的URL:指定服務器端資源,例如;/day23_1/AServlet
請求是否爲異步:若是爲true表示發送異步請求,不然同步請求!
xmlHttp.open("GET", "/day23_1/AServlet", true);
xmlHttp.send(null):若是不給可能會形成部份瀏覽器沒法發送!
參數:就是請求體內容!若是是GET請求,必須給出null。
經過get請求,進行數據提交,須要將數據拼接到url中,並且send爲null,後端經過getParameter獲取參數,編碼問題, request.setCharacterEncoding();無效,由於數據在url中,不在請求體中。
在xmlxmlHttpHttp對象的一個事件上註冊監聽器:onreadystatechange
對象一共有5個狀態:
0狀態:剛建立,尚未調用open()方法;
1狀態:請求開始:調用了open()方法,但尚未調用send()方法
2狀態:調用完了send()方法了;
3狀態:服務器已經開始響應,但不表示響應結束了!
4狀態:服務器響應結束!(一般咱們只關心這個狀態!!!)
獲得xmlHttp對象的狀態:
var state = xmlHttp.readyState;//多是0、一、二、三、4
獲得服務器響應的狀態碼
var status = xmlHttp.status;//例如爲200、40四、500
獲得服務器響應的內容1
var content = xmlHttp.responseText;//獲得服務器的響應的文本格式的內容
var content = xmlHttp.responseXML;//獲得服務器的響應的xml響應的內容,它是Document對象了!