Ajax的建立方式

使用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
初始化狀態。XMLHttpRequest 對象已建立或已被 abort() 方法重置。
1 Open
open() 方法已調用,可是 send() 方法未調用。請求尚未被髮送。
2 Sent
Send() 方法已調用,HTTP 請求已發送到 Web 服務器。未接收到響應。
3 Receiving
全部響應頭部都已經接收到。響應體開始接收但未完成。
4 Loaded
HTTP 響應已經徹底接收。

對於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庫的支持。

相關文章
相關標籤/搜索