使用XMLHttpRequest對象建立原生的Ajax請求。ajax
如今的瀏覽器(IE7+,chrome,firefox等)均支持 XMLHttpRequest 對象,但對於早期的IE瀏覽器使用ActiveXObject對象。chrome
var xmlhttp; if (window.XMLHttpRequest) //首先判斷瀏覽器的類型 { xmlhttp=new XMLHttpRequest(); //若是是支持XMLHttpRequest } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //若是是早期的IE瀏覽器 }
建立後XMLHttpRequest對象後,就能夠與服務器進行數據的交換。json
有兩個方法:一個是open(),另外一個是send(),分別用於打開鏈接,和發送數據。瀏覽器
open()方法接受三個參數,一、method,指定請求類型get或post。二、url,服務器的地址。三、async,指定是異步仍是同步。服務器
send()方法只接受一個參數,即url,請求的服務器路徑。app
xml.open("POST","login.do",false); xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xml.send(url);
返回的結果的值均會封裝到xml對象中,它有多個屬性,在這裏主要看兩個屬性readyState和status異步
HTTP 請求的狀態.當一個 XMLHttpRequest 初次建立時,這個屬性的值從 0 開始,直到接收到完整的 HTTP 響應,這個值增長到 4。async
下表列出了狀態、名稱和含義:函數
0 | Uninitialized |
|
|
1 | Open |
|
|
2 | Sent |
|
|
3 | Receiving |
|
|
4 | Loaded |
|
對於status屬性,即爲200則請求返回成功,因此代碼以下:post
if(xml.readyState==4&&xml.status==200) { alert(xml.responseText); }
這樣,一個完整的原生的Ajax請求就完成了。
但實際上,因爲JQuery的封裝,咱們已經不多這麼作了,下面來看看使用JQuery是怎麼進行ajax請求的。
Query實現 Ajax 的方法就簡單不少了,已經封裝好了一個 $.ajax
函數,調用很方便。
$.ajax({ type: "POST", //發送是以POST仍是GET url: "login.do", //發送的地址 dataType: "json", //傳輸數據的格式 data: {"username": "cg","password": 123456}, //傳輸的數據 //成功的回調函數 success: function(msg) { console.log(msg) }, //失敗的回調函數 error: function() { console.log("error") } })
固然,要使用JQuery的封裝請求,須要有JQuery庫的支持。