以XML格式傳輸資料 (1)--Ajax學習筆記__Ajax

來源:互聯網
上載者:User

Ajax

可能您是在剛認識了Ajax的核心對象XMLHttpRequest時才認為Ajax中的XML是怎麼回事,或許你肯定它就是Ajax中的x ,但是實際上它和XML沒有什麼直接的關係.這都與它的名字有很大的關係,XMLHttpRequest,而且是出現在Ajax裡面那肯定就是和XML有關了.其實在大多數Ajax應用中XML用的並不是特別多,主要還都是用名/值對進行傳值,下面來介紹下如何使用XML格式在Ajax中進行傳遞資料.

首先,從用戶端把資料傳遞到伺服器,Ajax應用中基本上都是用文本的方式來直接傳遞請求參數,如:

 清單 1. 使用普通文本發送名/值對function sendMessage() {
   var firstName = document.getElementById("firstName").value;
  var lastName = document.getElementById("lastName").value;
  var street = document.getElementById("street").value;
  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  var zipCode = document.getElementById("zipCode").value;

   var url = "/scripts/saveAddress.php?firstName=" + escape(firstName) +
    "&lastName=" + escape(lastName) + "&street=" + escape(street) +
    "&city=" + escape(city) + "&state=" + escape(state) +
    "&zipCode=" + escape(zipCode);

    xmlHttp.open("GET", url, true);

    xmlHttp.onreadystatechange = confirmUpdate;

    xmlHttp.send(null);
}


上面的例子就是直接把參數添加在url後用 ?paramName1=value2&paramName2=value2的形式來傳遞資料,

這樣做的好處是瀏覽器和伺服器只需要把參數當作普通文本進行處理,速度會比較快,不需要進行格式轉換.

下面來看在Ajax應用如何用XML格式來傳遞參數到伺服器,看看下面的例子;

清單 2. 用 XML 發送名/值對
function sendMessage() {
  var firstName = document.getElementById("firstName").value;
  var lastName = document.getElementById("lastName").value;
  var street = document.getElementById("street").value;
  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  var zipCode = document.getElementById("zipCode").value;

  var xmlString = "<profile>" +
    "  <firstName>" + escape(firstName) + "</firstName>" +
    "  <lastName>" + escape(lastName) + "</lastName>" +
    "  <street>" + escape(street) + "</street>" +
    "  <city>" + escape(city) + "</city>" +
    "  <state>" + escape(state) + "</state>" +
    "  <zip-code>" + escape(zipCode) + "</zip-code>" +
    "</profile>";


     var url = "/scripts/saveAddress.php";

    xmlHttp.open("POST", url, true);

    xmlHttp.setRequestHeader("Content-Type", "text/xml");

 
  xmlHttp.onreadystatechange = confirmUpdate;

    xmlHttp.send(xmlString);
}

現在您應該知道是怎麼回事了,其實在Ajax傳遞XML真的顯得很笨拙,它需要固定的XML格式,以及多餘的字元,還要把請求格式給設定成(text/xml),而且在傳遞的時候並不是象在傳遞普通文本一樣放在URL後面傳遞,而是由send方法親自傳遞到伺服器,伺服器還要把它們以XML格式進行分析處理,然後做出響應! !真是廢時又廢力,所以說不推薦使用XML傳遞資料到伺服器,除非 伺服器它只接受XML類型!

下次我們看看另一種情況,從伺服器發出XML響應資訊!

相關文章

聯繫我們

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