Using XMLHTTP and DomDocument on web applications

xiaoxiao2021-03-06  23

XMLHTTP and DOMDocument Using Problem in Web App Select BLOG's Blog using XMLHTTP to achieve new data for new automatic access server in the page, and you can realize new data in some chat rooms, you can also Timed new page data is realized in other BS applications. However, some problems will be encountered when using XMLHTTP and DomDocument. One is how to transfer parameters, and the second is Chinese garbled problems, and there is how to resolve XML code. 1. Parameter Transfer and Get Parameter Values ​​XMLHTTP's Send Method Send (Varbody) Varbody: Instruction Set. Can be XML format data, or a string, stream, or an unsigned integer array. It can also be omitted, and the instruction will be submitted through the URL parameter of the OPEN method. The Send method can also transmit parameters pairs, and each parameter can be used with & separation, such as VAR post = "ID = 1000 & Page = 3"; XMLHttp.send (POST); or join on the URL parameter of the Open method, such as XMLHTTP .open ("post", "http: // localhost: 8088 / getData? id = 1000 & page = 3", false); In JSP or servlet, you can get a parameter string id = (String) from the request in peacetime. Req.getParameter ("ID"); string page = (string) Req.getParameter ("Page"); because the request sent by XMLHTTP is not the Multipart / Form-Data format, it is not possible to use multiple formats in Multipart / Form-Data format. Some methods.

2, Chinese garbled problem XMLHTTP is sent to request and receive return values ​​in UTF-8, so if there is no coding process, in the transmission of the parameters or in the received return value, then we see It is garbled to handle the parameters sent by the sending VAR post = "years = 2004-2005 & termid = autumn and winter"; // contains Chinese XMLHttp.Open ("post", "http: // localhost: 8088 / getData", false); XMLHTTP .SetRequestHeader ("Content-Type", "Application / X-WWW-Form-Urlencoded"); // To have this sentence xmlhttp.setrEquestHeader ("Content-length", post.length; xmlhttp.send (POST); When the parameter is taken in the servlet, the Request is encoded to process Req.SetCharacterencoding ("UTF-8"); then take the parameter string years = (string) Req.getParameter ("years"); string termid = (String) Req.getParameter ("Termid"); if there is a page with output data to the requested page in the servlet, if you include Chinese, you should first encode the response to encode the response to process private static final string content_type = "text / html; charset = UTF- 8 "; res.setContentType (content_type); use UTF-8 in the output XML code (" "); out.println (""); OUT.PRINTLN ("); Out.Println (" Zhang 3 ); Out.println (" male "); out.println (""); out.println (""); Out.println (" 11 "); OUT.PR INTLN (" Design mode </ Title>"); Out.println ("</ Book>"); ... out.println ("</ root>"); 3, in the page to XML code Performing all code as follows <script language = "javascript"> function getnodevalue (root, node = root.selectsinglenode (nodename); return node.text;} catch (e) {return ";}} Function getPersonnodeAttributes (xmldoc) {var text = ""</p> <p>Var obj = xmldoc.getElementSbyTagname ("Person"); for (var i = 0; i <obj.length; i ) {var node = obj.Item (i); var ID = node.getattribute ("id"); VAR name = getnodevalue (node, "name"); var gender = getnodevalue (node, "gender"); text = "ID =" id ", name =" name ", gender =" gender; alert (text);}} function getbooknodettributes (xmldoc) {var text = ""; var obj = xmldoc.getlementsBytagname ("BOOK"); for (var i = 0; i <obj.length; i ) {var Node = Obj.Item (i); var ID = node.getattribute ("id"); var bookid = getnodeValue (Node, "BookID"); var title = getnodeValue (Node, "Title"); text = "ID = " ID ", BookId = " Bookid ", Title = " Title; Alert (Text);} Return TEXT;} // setInterval (" CheckResult () ", 1000); // Timed call checkresult method new data function checkResult () {var xmlDoc = new ActiveXObject ( "Msxml2.DOMDocument.4.0"); xmlDoc.async = false; var post = "Years = 2004-2005 & TermID = winter"; var xmlhttp = new ActiveXObject ( "Msxml2. Xmlhttp.4.0 "); XMLHTTP.Open (" post "," http: // localhost: 8088 / getda TA ", false;" content-type "," application / x-www-form-urlencoded "); XMLHTTP.SetRequestHeader (" Content-length ", Post.Length; XMLHttp.send (POST) XMLDoc.LoadXML (XMLHTTP.RESPONSETEXT); var person = getBooknodeAttributes (xmldoc); var book = getPersonNodeAttributes (xmldoc);} </ script> BLOG:</p> <p>http://blog.9cbs.net/Rabbitbug/</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-66033.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="66033" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.032</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '6VGkSArz2Sr5ZH2KFzuzj_2BJXoDaf7GNaCvZ8_2BxLNjkqSM1X_2BkAAqHjBeuAlOcEPnxJBRFUyqosxYQ7M_2FIu8qPg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>