亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

非常簡單的Ajax請求實例附源碼

 更新時間:2015年11月03日 14:17:40   投稿:lijiao  
這篇文章為大家推薦了一個非常簡單的Ajax請求實例,可以在不重載頁面的情況與 Web 服務器交換數據,感興趣的小伙伴們可以參考一下

Ajax不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強的Web應用程序的技術。通過Ajax,您可以使用 JavaScript的XMLHttpRequest對象來直接與服務器進行通信。您可以在不重載頁面的情況與 Web 服務器交換數據。在本文的例子中,我們將演示當用戶向一個標準的HTML表單中輸入數據時網頁如何與web服務器進行通信。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>簡單的Ajax請求</title>
 <script type="text/javascript">
  var xmlHttp;
  // 創(chuàng)建XMLHttpRequest對象
  function createXMLHttpRequest() {
   if (window.ActiveXObject) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   else if (window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
   }
  }
  // 整合url參數
  function createQueryString() {
   var name = document.getElementById("txtName").value;
   var sex = document.getElementById("txtSex").value;
   var birthday = document.getElementById("txtBirthday").value;
   var queryString = "Name=" + encodeURIComponent(name) + "&Sex=" + encodeURIComponent(sex) + "&Birthday=" + encodeURIComponent(birthday);
   return queryString;
  }
  // 按照Get方式傳遞參數
  function doRequestUsingGET() {
   createXMLHttpRequest();
   var queryString = "AjaxServer.ashx?";
   queryString = queryString + createQueryString() + "&timeStamp=" + new Date().getTime();
   xmlHttp.onreadystatechange = handleStateChange;
   xmlHttp.open("GET", queryString, true);
   xmlHttp.send(null);
  }
  // 按POST方式傳遞參數
  function doRequestUsingPOST() {
   createXMLHttpRequest();
   var url = "AjaxServer.ashx?timeStamp=" + new Date().getTime();
   var queryString = createQueryString();
   xmlHttp.open("POST", url, true);
   xmlHttp.onreadystatechange = handleStateChange;
   xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
   xmlHttp.send(queryString);
  }
  // 回調函數
  function handleStateChange() {
   if (xmlHttp.readyState == 4) {
    if (xmlHttp.status == 200) {
     parseResults();
    }
   }
  }
  // 處理服務器響應內容
  function parseResults() {
   var responseDiv = document.getElementById("serverResponse");
   if (responseDiv.hasChildNodes()) {
    responseDiv.removeChild(responseDiv.childNodes[0]);
   }
   var responseText = document.createTextNode(xmlHttp.responseText);
   responseDiv.appendChild(responseText);
  }
 </script>
</head>
<body>
 <form action="#">
 <h2>輸入你的名字,性別,生日:</h2>
 <table>
  <tr><td>名字:</td><td><input type="text" id="txtName" /></td></tr>
  <tr><td>性別:</td><td><input type="text" id="txtSex" /></td></tr>
  <tr><td>生日:</td><td><input type="text" id="txtBirthday" /></td>
  </tr>
 </table>
 <input type="button" value="用Get方式傳參數" onclick="doRequestUsingGET();"/>
 <br /><br />
 <input type="button" value="用POST方式傳參數" onclick="doRequestUsingPOST();"/>
 </form>
 <br />
 <h3>服務器響應內容:</h3>
 <div id="serverResponse"></div>
</body>
</html>

下面來詳細說明每個JS函數的功能。
createXMLHttpRequest() 用來創(chuàng)建XMLHttpRequest對象。
因為IE把XMLHttpRequest實現為一個ActiveX對象,其他瀏覽器(FF/Safari/Opera)把它實現為一個本地JavaScript對象。由于存在這些差別,JavaScript代碼中必須包含有關的邏輯。
createQueryString() 用來整理參數,將Ajax請求要傳遞的參數整理成一定的格式。
如果傳遞中文或非ASCII字符必須進行URL編碼,本例使用JS的encodeURIComponent()函數進行參數URL編碼。
doRequestUsingGET() 以HTTP GET方式向服務器發(fā)送請求,并且傳遞參數。
XMLHttpRequest對象的open()方法會指定將發(fā)出的請求。open()方法取3個參數:一個是指示所使用的方法(通常是GET或POST)的串;一個是表示目標資源URL的串;一個是Boolean值,只是請求是否是異步的。
GET請求時,將傳遞的參數寫到open方法的url參數中,此時send方法的參數為null。
在某些情況下,有些瀏覽器會把多個XMLHttpRequest請求的結果緩存在同一個URL。如果對每個請求的響應不同,這就會帶來不好的結果,把當前時間戳追加到URL的最后,就能確保URL的惟一性,從而避免瀏覽器緩存結果。
本例服務器端代碼使用的是asp.net(c#)。
doRequestUsingPOST() 以HTTP POST方式向服務器發(fā)送請求,并且傳遞參數。
確保open()中指定的方法是POST,需要設定Content-Type頭信息,模擬HTTP POST方法發(fā)送一個表單,這樣服務器才會知道如何處理上傳的內容。設置頭信息前必須先調用open方法。
必須使用send方法傳遞參數。參數的提交格式和GET方法中url的寫法一樣。
handleStateChange()  Ajax回調函數。
對于XMLHttpRequest對象,onreadystatechange屬性存儲了回調函數的指針。當XMLHttpRequest對象內部狀態(tài)發(fā)生變化時,就會調用這個回調函數。
parseResults() 處理響應結果。

以上就是一個很簡單的Ajax請求實例,歡迎大家學習,下載Ajax請求實例

相關文章

  • ajax獲取數據中文亂碼問題最簡單的完美解決方案

    ajax獲取數據中文亂碼問題最簡單的完美解決方案

    這篇文章主要介紹了ajax獲取數據中文亂碼問題最簡單的完美解決方案,需要的朋友可以參考下
    2014-11-11
  • 使用AJAX返回WebService里的集合具體實現

    使用AJAX返回WebService里的集合具體實現

    如何使用AJAX返回WebService里的集合,在本文將有一個完美的實現,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-05-05
  • ajax實現輸入提示效果

    ajax實現輸入提示效果

    這篇文章主要為大家詳細介紹了ajax實現輸入提示效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Ajax校驗用戶名是否存在的方法

    Ajax校驗用戶名是否存在的方法

    這篇文章主要為大家詳細介紹了Ajax校驗用戶名是否存在的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JavaScript實現Ajax總結

    JavaScript實現Ajax總結

    ajax應用非常普及,ajax的優(yōu)點大家都知道,具體就不多說了,其缺點還真不少,比如破壞瀏覽器的back功能,同一個url打開的界面并不是完全相同,還有安全性能等方面,至于有這么多的缺點,也阻止不了大家使用ajax的步伐,下文給大家分享javascript實現ajax小結吧
    2015-10-10
  • AJAX對服務器返回XML的處理方法

    AJAX對服務器返回XML的處理方法

    這篇文章主要介紹了AJAX對服務器返回XML的處理方法,實例分析了Ajax的實現技巧及針對XML返回數據的處理方法,需要的朋友可以參考下
    2015-03-03
  • Ajax實現城市二級聯動(一)

    Ajax實現城市二級聯動(一)

    這篇文章主要為大家詳細介紹了Ajax實現城市二級聯動的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • js與jQuery實現的兼容多瀏覽器Ajax請求實例

    js與jQuery實現的兼容多瀏覽器Ajax請求實例

    這篇文章主要介紹了js與jQuery實現的兼容多瀏覽器Ajax請求,以實例形式分別講述了采用純js與jQuery實現的兼容多瀏覽器Ajax請求的方法,并對Ajax中出現的亂碼問題進行了一定的分析,需要的朋友可以參考下
    2014-11-11
  • 如何實現ajax延時發(fā)送在空閑之后去發(fā)送ajax請求

    如何實現ajax延時發(fā)送在空閑之后去發(fā)送ajax請求

    關鍵字搜索的功能,還是比較實用的,在實現過程中就需用到ajax延時發(fā)送,下面有個不錯的示例,有需要的朋友可以參考下
    2013-12-12
  • ajax中的async屬性值之同步和異步及同步和異步區(qū)別

    ajax中的async屬性值之同步和異步及同步和異步區(qū)別

    在Jquery中ajax方法中async用于控制同步和異步,當async值為true時是異步請求,當async值為fase時是同步請求。ajax中async這個屬性,用于控制請求數據的方式,默認是true,即默認以異步的方式請求數據。
    2015-10-10

最新評論