亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用XMLHTTP發送超長XML表單數據

2019-11-18 20:01:15
字體:
來源:轉載
供稿:網友

在把大量的xml作為POST數據的一部分發送給你的IIS服務器的時候——諸如在asp表單的TEXTAREA里——你可能會得到一些沒有預料到的結果。當數據在服務器上被處理的時候,由于你處理數據方式的不同,你最終可能會碰到錯誤。其原因是,當你把數據提交回服務器的時候,POST字段里有一個(數據)大小的限制。這樣做的目的是為了防止可能的入侵者在實施拒絕服務(denial of service,DoS)的攻擊中向服務器發送超大量的數據。

 
這一限制也束縛你的能力。但是有辦法解決這個問題。如果你沒被限制在只能夠通過FORM提交來發送數據,那么你就可以使用xmlhttp對象(微軟的XML集里的一個DOM對象)來發送所需要的XML:
 
var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
oXMLHTTP.open("POST", "xml_handler.asp", false);
oXMLHTTP.send(xml_to_send);
 
由于Request對象會實現IStream接口,所以你可以通過使用DOMDocument對象的load()方法來加載所要提交的XML:
 
Dim oDOM
Set oDOM = Server.CreateObject("MSXML2.DOMDocument")
oDOM.load Request
 
如果你被限制在只能夠使用FORM提交,那么你可以通過提交多個TEXTAREA或者INPUT來跨越這一限制,前面兩者在服務器一接收到這個FORM數據的時候就可以被重新組合在一起:
 
var MAXLEN = 90000;
var oForm = document.createElement("FORM");
oFORM.method = "POST";
oFORM.action = "xml_handler.asp";
oFORM = document.body.appendChild(oFORM);
var s = document.someForm.txtXML.value;
if (s.length > MAXLEN) {
    while (s.length > MAXLEN) {
        var o = document.createElement("INPUT");
        o.type = "hidden";
        o.name = "txtXML";
        o.value = s.substr(0, MAXLEN);
        oFORM.appendChild(o);
        s = s.substr(MAXLEN);
    }
    var o = document.createElement("INPUT");
    o.type = "hidden";
    o.name = "txtXML";
    o.value = s.substr(0, MAXLEN);
    oFORM.appendChild(o);
} else {
    var o = document.createElement("INPUT");
    o.type = "hidden";
    o.name = "txtXML";
    o.value = s;
    oFORM.appendChild(o);
}
 
這一段代碼會創建一個新的FORM元素,用來處理數據的提交,并將它放置到BODY元素內。然后,它會檢查即將提交給服務器的XML的長度。這個XML駐留在someForm內部一個叫做txtXML的TEXTAREA里。
 

如果這個XML大于90,000字符的MAXLEN,那么這段代碼就會創建多個隱藏的INPUT(輸入)元素,并把值的屬性設置為90,000個字符的XML數據,或者設置為XML尾部的某個值,從而將這個數據分割成多個部分。如果這個XML的大小小于MAXLEN,那么這段代碼就只會創建一個INPUT并相應地設置值。然后這個數據就被提交到服務器供處理。

你可能已經注意到,我把相同的名稱——txtXML——指定給新表單的每個字段。這將有助于把XML數據同其他可能會被提交的數據分隔開來,并為重組XML數據提供了一種簡單的方式。在重組數據的時候,你需要一個簡單的循環來連接字段里的數據:
 
Dim str, fld
For Each fld In Request.Form("txtXML")
    str = str & fld
Next
 
由于已經為每個FORM元素都創建了一個字段集,所以你可以在同一個名稱的字段里迭代。只要以適當的順序在客戶端創建FORM元素,你就不需要擔心字段被遍歷的順序。通過FORM的appendChild()方法,這能夠被輕易地實現。

數據在客戶端是按照從左到右、從上到下的順序被提交的,所以當你把INPUT元素附加到FORM元素尾部的時候,在你服務端也總是按照同樣的順序來接收數據的。

如果你正在尋求實現一個大型的數據解決方案,例如將大量的Excel數據從客戶機器傳遞到服務器上,那么你就應該重新考慮是否要使用FORM提交,或者將數據從邏輯上分成多個小的部分。由于你無法使用文件類型INPUT元素,所以最具有創造力的解決方案是將數據在本地轉變成為XML,再將XML數據提交給服務器。反過來,數據會保存在服務器上,直到需要更進一步處理。

當然,處理這個問題可能會有更好的方法。但是當你沒有太多時間的時候,你所需要的就是一個快速的、可用的解決方案。


 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国精品久久99热一| 成人av电影天堂| 日韩在线高清视频| 亚洲色图美腿丝袜| 国产亚洲欧美一区| 欧美成人亚洲成人日韩成人| 亚洲精品91美女久久久久久久| 欧美性少妇18aaaa视频| 国产精品爽爽爽| 亚洲人成在线免费观看| 日韩精品亚洲元码| 日韩av网站电影| 色婷婷综合久久久久中文字幕1| 久久久免费高清电视剧观看| 国产精品欧美在线| 久久av中文字幕| 国产不卡一区二区在线播放| 亚洲人精选亚洲人成在线| 亚洲第一页自拍| 欧美重口另类videos人妖| 7777精品久久久久久| 日韩中文在线不卡| 亚洲国产精品久久91精品| 亚洲欧洲自拍偷拍| 91精品久久久久久久久久入口| 中日韩美女免费视频网站在线观看| 久久影院资源网| 1769国内精品视频在线播放| 国产精品第10页| 国产亚洲欧洲高清一区| 欧美大片免费观看在线观看网站推荐| 久久激情视频久久| 国产日韩换脸av一区在线观看| 亚洲欧美激情另类校园| 97视频免费在线看| 最近2019中文字幕大全第二页| 久久中文字幕在线视频| 亚洲国产天堂久久综合| 久久国产精品久久精品| 热99精品里视频精品| 91免费观看网站| 日韩av在线资源| 久久亚洲影音av资源网| 国产成人精品在线视频| 欧美美女操人视频| 亚洲免费电影一区| 国产偷国产偷亚洲清高网站| 久久久中精品2020中文| 亚洲国产成人久久| 91久久久亚洲精品| 亚洲国产精品字幕| 亚洲国产另类久久精品| 日韩电影在线观看永久视频免费网站| 久久影院模特热| 久久天天躁狠狠躁夜夜爽蜜月| xvideos亚洲| 欧美激情啊啊啊| 91久久久久久久一区二区| 国产色综合天天综合网| 一区二区三区精品99久久| 美女999久久久精品视频| 国产日韩欧美另类| 精品久久久久久中文字幕一区奶水| 国产一区二区av| 国产欧美va欧美va香蕉在| 不卡av电影在线观看| 亚洲国产精品免费| 成人福利在线观看| 国产剧情久久久久久| 中文字幕亚洲无线码在线一区| 亚洲国产毛片完整版| 亚洲午夜未满十八勿入免费观看全集| 国产日韩欧美一二三区| 国产97在线观看| 亚洲精品久久视频| 国产经典一区二区| 日韩大胆人体377p| 亚洲电影免费观看高清完整版在线观看| 国产亚洲视频中文字幕视频| 精品国产视频在线| 日韩最新免费不卡| 欧美成人精品一区| 7m第一福利500精品视频| 欧美精品久久久久| 日韩精品免费看| 欧美国产第一页| 国产精品xxx视频| 国产精品久久久久国产a级| 日韩成人在线视频网站| 97视频免费在线看| 欧美精品午夜视频| 欧美在线性视频| 欧美性高跟鞋xxxxhd| 亚洲精品丝袜日韩| 91美女片黄在线观看游戏| 亚洲新中文字幕| 中文字幕久精品免费视频| 亚洲天堂免费视频| 国产成人精品国内自产拍免费看| 人妖精品videosex性欧美| 精品一区二区三区三区| 国产一区二区激情| 国产精品91免费在线| 91在线视频精品| 日韩欧美视频一区二区三区| 日韩激情在线视频| 国产精品色悠悠| 午夜精品久久久久久久久久久久| 91亚洲精品一区二区| 中文字幕日韩欧美在线视频| 久久露脸国产精品| 成人淫片在线看| 国产精品永久免费观看| 91av在线播放视频| 亚洲美女激情视频| 91精品国产91久久久久久最新| 91九色在线视频| 久久综合久久八八| 欧美精品久久久久久久久久| 国产一区二区三区四区福利| 在线播放国产精品| 日本道色综合久久影院| 日韩中文字幕欧美| 亚洲激情小视频| 91久久精品美女高潮| 深夜福利日韩在线看| 91亚洲国产成人精品性色| 国产999在线| 亚洲综合av影视| 欧美亚洲一级片| 日韩av三级在线观看| 亚洲国产高潮在线观看| 国产精品中文字幕久久久| 日韩精品在线私人| 久久99热这里只有精品国产| 亚洲有声小说3d| 亚洲永久在线观看| 国产精品美女久久| 日本成人在线视频网址| 久久综合久久八八| 一个人看的www久久| 91牛牛免费视频| 亚洲人成在线观看网站高清| 欧美色videos| 国产精品免费久久久久久| 伊人精品在线观看| 欧美激情一级精品国产| 九九九久久久久久| 一区二区在线免费视频| 国内精品久久久久久久| 欧美激情va永久在线播放| 亚洲午夜av久久乱码| 国产丝袜一区二区| 亚洲高清一二三区| 国产精品久久久久久久久借妻| 一区二区三区国产在线观看| 国产一区二区三区中文| 日韩av电影在线免费播放| 久久大大胆人体| 亚洲精品国产精品自产a区红杏吧| 中文综合在线观看| 国产视频丨精品|在线观看| 日韩有码片在线观看| 亚洲国产欧美一区二区三区同亚洲|