js實現AJAX請求

來源:互聯網
上載者:User

標籤:style   blog   http   color   java   使用   os   io   

 

摘自:http://www.myexception.cn/javascript/1448345.html

 

AJAX:全稱“Asynchronous JavaScript and XML”(非同步JavaScript與XML)

 

AJAX請求的特點:

1、不重新整理頁面

2、伺服器僅返回需要的資料

 

AJAX引擎:XMLHttpRequest此對象是瀏覽器中的內建對象,在目前的所有瀏覽器中都支援此對象。

IE中擷取此對象:

   if(window.ActiveXObject){
            var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
   }

非IE中擷取次對象:var xmlHttp=new XMLHttpRequest();

 

相容模式:

 var xmlHttp://聲明一個對象

 function creatXMLHttpRequest(){
      if(window.ActiveXobject){……}else{//非IE採用的方式……}

 }

 

 請求的格式:  xmlHttp.open(請求方式,請求地址,[是否為非同步請求]);  xmlHttp.send(); Get請求:xmlHttp.open("GET","ajax.do?name=tom",true);xmlHttp.send(); 註:get請求的傳值方式為請求地址後面跟  ?key=value Post請求:xmlHttp.open("POST","ajax.do",true);xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttp.send("name=tom"); 註:post請求的傳值方式是在send()方法中進行傳值,多個值用逗號隔開:name=tom,age=12setRequestHeader的意思是佈建要求頭的類型為表單類型:Content-Type="application/x-www-form-             urlencoded"  是form表單的預設屬性  一個完整的AJAX請求的流程:  1,建立XMLHttpRequest對象  2,調用xmlHttp.open()佈建要求內容  3,設定回呼函數(根據伺服器返回的狀態資訊,做什麼事情)  4,調用xmlHttp.send()發送請求function sendAjax(){    createXMLHttpRequest();//調用上面設定的相容模式    xmlHttp.open("GET","ajax.do?name=tom",true);    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");    xmlHttp.onreadystatechange=callback;//狀態資訊發生改變調用函數    xmlHttp.send();}//回呼函數function callback(){    alert("callback");}sendAjax();//瀏覽器會彈出幾次框(不同的瀏覽器可能不同) 擷取AJAX請求的狀態代碼和HTTP協議的狀態代碼: AJAX請求的狀態代碼有四個值:  var xmlState=xmlHttp.readyState;  1,已初始化  2,資料轉送中  3,響應資料轉送中  4,響應完畢HTTP協議的狀態代碼有很多:  var httpState=xmlHttp.status;常見的狀態代碼如下:狀態代碼    意義200    伺服器正確處理了請求並響應404    請求的頁面未找到403    沒有許可權訪問請求的頁面405    頁面不接收該請求方式408    請求逾時500    伺服器處理請求時發生異常503    服務暫時不可用304    網頁未修改 使用Servlet擷取伺服器端的文本://ajax.do//這是Servlet類中的doGet方法public void doGet(HttpServletRequest request,HttpServletResponse response){    PrintWriter out=response.getWriter();    out.print("OK");    out.flush();    out.close();} //callbackfunction callback(){    if(xmlHttp.readyState==4){//響應完畢後        if(xmlHttp.status==200){//http狀態代碼為200時            var result=xmlHttp.responseText;//擷取ajax請求的常值內容            alert(result);        }    }} 總結:Ajax請求使用 XMLHttpRequest 對象IE和非IE擷取對象的方式不同GET,POST請求的傳值問題Ajax請求的流程Ajax請求的狀態代碼和HTTP協議中伺服器返回的狀態代碼擷取簡單地伺服器返回的文本資訊

 

聯繫我們

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