Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > ajax

AJAX 异步传输数据的问题

来源:中文源码网    浏览:141 次    日期:2024-05-12 02:11:10
【下载文档:  AJAX 异步传输数据的问题.txt 】


AJAX 异步传输数据的问题
要异步传输的数据: Xml代码 .... .... Ajax异步传输代码: Js代码 复制代码 代码如下:var postData = "input="+ escape(inputJSON) +"&script="+escape(xml)+ "&feedGeneral=" + escape(feedGeneral); XmlHttpRequest.open("POST",url,true); XmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); XmlHttpRequest.send(postData); postData在encode和unencode,最终导致在后台Servlet中得到得到数据+被空格代替,使得script中的index += 1;变成了index = 1;从而导致后台Java代码在跑script出现死循环。 在网上搜索,发现content-type使用application/x-www-form-urlencoded后: [来自http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1]写道 复制代码 代码如下:Control names and values are escaped. Space characters are replaced by `+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by `%HH', a percent sign and two hexadecimal digits representing the ASCII code of the character. Line breaks are represented as "CR LF" pairs (i.e., `%0D%0A'). 然而使用form来提交方式来发起request却不会出现类似的问题,而form默认的Content-Type也是application/x-www-form-urlencoded: Js代码 复制代码 代码如下:$('test').innerHTML = "
" + "" + "" + "
"; var test_form = $('test_form'); test_form.elements[0].value = inputJSON; test_form.elements[1].value = script; test_form.elements[2].value = feedGeneral; test_form.submit(); 仍未发现问题到底出在何处,暂做备忘。暂时把script中的‘+'都用‘-'代替,index += 1;改成index -= -1;呵呵,以后有人看到这段自动生成的诡异脚本,不知道会作何感想,但现在也只能如此。

相关内容