使用XML HTTP傳送超長XML表單資料(轉)

amyz發表於2007-08-12
使用XML HTTP傳送超長XML表單資料(轉)[@more@]

  在把大量的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 oDOMSet 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) {  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950305/,如需轉載,請註明出處,否則將追究法律責任。

相關文章