JavaScript透過XMLHttpRequest與伺服器進行數據資料交換
這篇文章的數據資料是標籤式資料(或者可以稱為XML)

因為ASP.NET CallBack只提供了資料一進一出的介面, 所以在資料交換方面, 必須進行一些加工, 以方便在應用上可以更加簡化。

範例下載:http://aqr198.googlepages.com/CallBackXML.rar

※標籤式資料格式:定義資料交換的格式,主要是由<ACT>內容來決定資料處理模式,格式範例如下,
<ACT>SAVE</ACT>
<name>王大強</name>
<tel>020488956</tel>
<addr>太平洋海邊7號</addr>
<notes>寄信來丫</notes>


※XMLData物件:主要是將傳入的字串轉換成XML物件且取出節點內的數值,這個一個公用類別,所以會放在App_Code目錄內。
這個物件內有Load、GetNodeValue、UnValue三個方法,說明如下:
Load:以上的資料格式來看,少了XML中重要的根節點,所以在方法內會固定幫字串加上一個根節點後再加到XML物件中,如果沒有加上根節點會發生錯誤。
GetNodeValue:取得子節點的內容值。
UnValue:將子節點內容值解碼。

※頁面邏輯物件(CallBack_XML):主要是處理資料的規則都在這裡,公開二個方法及一個屬性。
Load:將傳入的字串載入。
doThing:主要處理程序。
Result:回傳資料,這個變數根據頁面需求給予對應的資料格式。

※資料編碼: 在範例中送出資料分為有編碼沒有編碼二種,執行的結果會發現無編碼的部份會出現錯誤訊息。
因為在web.config內指定了big5的編碼,所以中文變成亂碼,在傳入XmlDocument時發生錯誤
<globalization requestencoding="big5" responseencoding="big5">
用戶端的部份是透過 encodeURI 進行編碼,在伺服器端是透過 System.Uri.UnescapeDataString 進行解碼

如果將設定拿掉後,頁面編碼就會變成預設的UTF-8,就不會有錯誤。

有問題或留言 >> http://aqr199xx.pixnet.net/blog/post/24548681
以上~~

arrow
arrow
    全站熱搜

    aqr199xx 發表在 痞客邦 留言(0) 人氣()