手机
当前位置:查字典教程网 >编程开发 >AJAX相关 >AJAX 异步传输数据的问题
AJAX 异步传输数据的问题
摘要:要异步传输的数据:Xml代码........Ajax异步传输代码:Js代码复制代码代码如下:varpostData="input="+esc...

要异步传输的数据:

Xml代码

....

<action xsi:type="basic:JavaScript" script="index += 1;"/>

....

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 = "<form target='_blank' id='test_form' action='./gen_feed' method='post'>"

+ "<input type='text' name='input' /><input type='text' name='script' />"

+ "<input type='text' name='feedGeneral' /><input type='hidden' name='format' value='" + this.feed_type + "'

/>"

+ "<input type='submit' value='gen' /></form>";

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;呵呵,以后有人看到这段自动生成的诡异脚本,不知道会作何感想,但现在也只能如此。

【AJAX 异步传输数据的问题】相关文章:

通过Ajax手动解决WordPress WP-PostViews不计数的问题

IE下jquery ajax无法获得最新数据的问题解决(IE缓存)

Ajax初试之读取数据篇实现代码

javascript对XMLHttpRequest异步请求的面向对象封装

AJAX 随记

原生AJAX写法实例分析

关于ajax的多次请求问题

如何解决远程页面抓取中的乱码问题

AJAX如何接收JSON数据示例介绍

AJAX和DOM的运行经验

精品推荐
分类导航