ajax請(qǐng)求返回類型有:1、xml類型,可用jQuery處理;2、html類型(純文本HTML信息);3、script類型(純文本JavaScript代碼);4、json類型;5、jsonp類型;6、text類型(純文本字符串)。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
Ajax詳解
Ajax = 異步 JavaScript 和 XML。
Ajax 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。
通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。
傳統(tǒng)的網(wǎng)頁(不使用 Ajax)如果需要更新內(nèi)容,必需重載整個(gè)網(wǎng)頁面。
(注:圖片來自網(wǎng)絡(luò))
如何使用Ajax技術(shù)
首先,需要獲取XMLHttpRequest
對(duì)象:
var xhr; xhr = new XMLHttpRequest();
XMLHttpRequest
對(duì)象有5個(gè)核心屬性:
onreadystatechange
:當(dāng)準(zhǔn)備狀態(tài)發(fā)生變化readyState
:準(zhǔn)備狀態(tài),該屬性的值可能是0~4之間的數(shù)字,0表示尚未建立連接,4表示接收到響應(yīng)status
:響應(yīng)碼,例如404、200responseText
:響應(yīng)的字符串responseXML
:響應(yīng)的XML
當(dāng)需要發(fā)出請(qǐng)求時(shí),需要XMLHttpRequest
對(duì)象的open()
和send()
方法:
- open(請(qǐng)求方式, 請(qǐng)求路徑, 是否異步)
- send()
使用演示:
// 異步檢查用戶名是否存在 function checkUsername(username) { // 獲取XMLHttpRequest對(duì)象 var xhr = new XMLHttpRequest(); var url = "check_username.do?username=" + username; // 配置onreadystatechange xhr.onreadystatechange = function() { // 當(dāng)服務(wù)器已經(jīng)響應(yīng)(4)且響應(yīng)碼是200時(shí) if (xhr.readyState == 4 && xhr.status == 200) { // 根據(jù)服務(wù)器的響應(yīng),顯示響應(yīng)的提示消息 if (xhr.responseText == "1") { // 表示用戶名存在 document.getElementById("username_hint").innerHTML= "用戶名正確"; } else { // 表示用戶名不存在 document.getElementById("username_hint").innerHTML= "用戶名不存在"; } } }; // 調(diào)用函數(shù) xhr.open("GET", url, true); xhr.send(); }
在JQuery中,Ajax有三種實(shí)現(xiàn)方式:
$.ajax({ "url":"", //訪問路徑 "data":"", // 需要傳輸?shù)臄?shù)據(jù) "type":"", // 請(qǐng)求方式 "dataType":"", // 返回值類型 "success":function(obj){}, // 響應(yīng)成功時(shí)的回調(diào)函數(shù) "error":function(obj){} // 響應(yīng)失敗時(shí)的回調(diào)函數(shù) }); $.get(URL,callback); $.post(URL,data,callback);
使用Ajax時(shí)的返回值類型有哪些?
xml、html、script、JSON、jsonp、text
-
xml:返回XML文檔,可用 jQuery 處理。
-
html:返回純文本HTML信息;
-
script:返回純文本
JavaScript
代碼。不會(huì)自動(dòng)緩存結(jié)果。除非設(shè)置了 “cache” 參數(shù); -
json:json方式和html方式在請(qǐng)求和服務(wù)器中完全是一樣,請(qǐng)求的返回值實(shí)際上都是String對(duì)象,有兩點(diǎn)不同,第一:html方式的時(shí)候并沒有限制返回的字符串格式,而json方式的時(shí)候,必須符合json協(xié)議的規(guī)范。第二:html方式請(qǐng)求完成之后沒有做任何的操作直接回調(diào)sucuess,而json多了一步就是加了eval,執(zhí)行返回的字符串,看看源碼
data = eval_r("(" + data + ")")
;返回json對(duì)象;(方法的返回值是Javabean時(shí),在響應(yīng)體中響應(yīng)成json字符串格式) -
jsonp:jsonp方式的交互方式和js是一樣的,本身
xmlHttpRequest
對(duì)象并不能跨域訪問,但是script
標(biāo)簽的src
可以跨域訪問,這里就注意兩個(gè)概念:第一Ajax是不能跨域操作的,第二jQuery的jsonp是可以跨域操作,jsonp到底是什么東西呢?他是一個(gè)非官方的定義,目前的規(guī)范,需要服務(wù)器和客戶端進(jìn)行配合使用; -
text:返回純文本字符串。
【相關(guān)教程推薦:AJAX視頻教程】