AJAX 异步传输数据的问题

 更新时间:2008年12月28日 21:50:17   作者:  
暂时把script中的‘+’都用‘-’代替,index += 1;改成index -= -1;呵呵,以后有人看到这段自动生成的诡异脚本,不知道会作何感想,但现在也只能如此。
要异步传输的数据:
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处理服务器返回的三种数据类型方法

    这篇文章主要介绍了ajax如何处理服务器返回的三种数据类型,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 使用ajax技术实现txt弹出在页面上的方法

    使用ajax技术实现txt弹出在页面上的方法

    下面小编就为大家带来一篇使用ajax技术实现txt弹出在页面上的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)

    jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)

    CSS也使得表格的布局越来越光彩耀人。但是,无论如何,都掩饰不了那些包装下的死板,接下来为大家介绍下让那些死板的数据 更具有可读性、可用性
    2013-04-04
  • 有史以来最简单的AJAX回调库

    有史以来最简单的AJAX回调库

    很多时候我们只要用到一些简单的Ajax功能,提供一些简单的回调而不需要很花哨的东西。然而现有的很多Ajax库都很大,虽然功能很多但是我们很多时候根本就不需要用到他们,我就遇到过那样的经历,所以我想弄一个很简单的Ajax回调函数来搞定。
    2008-10-10
  • ajax异步实现文件分片上传实例代码

    ajax异步实现文件分片上传实例代码

    这篇文章主要给大家介绍了关于ajax异步实现文件分片上传的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 使用Nginx 反向代理来避免 ajax 跨域请求的方法

    使用Nginx 反向代理来避免 ajax 跨域请求的方法

    这篇文章主要介绍了使用Nginx 反向代理来避免 ajax 跨域请求的方法的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • ajax实现输入提示效果

    ajax实现输入提示效果

    这篇文章主要为大家详细介绍了ajax实现输入提示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • ajax浏览器兼容的问题探讨

    ajax浏览器兼容的问题探讨

    ajax浏览器兼容的问题一直都是同学们多烦恼的,下面有个不错的示例大家可以参考下,希望对大家有所帮助
    2014-01-01
  • Ajax 程序开发中常见问题

    Ajax 程序开发中常见问题

    Ajax 程序开发中常见问题,利用大家快点的找到问题所在,快速解决问题。
    2009-08-08
  • ajax实现修改功能

    ajax实现修改功能

    本文主要介绍了ajax实现修改功能的相关资料,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04

最新评论