`

AJAX 异步传输数据的问题

    博客分类:
  • Ajax
阅读更多

要异步传输的数据:

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

 Ajax异步传输代码:

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后:

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:

$('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异步传输数据(1)——页面格式

    **Ajax异步传输数据(1)——页面格式** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它的核心是JavaScript,利用XMLHttpRequest对象与服务器进行通信,...

    Ajax 异步传输应用

    **Ajax(Asynchronous JavaScript and XML)异步传输技术是Web开发中的一个重要概念,它使得网页可以在不刷新整个页面的情况下与服务器进行数据交换,提升了用户体验。本文将深入探讨Ajax的工作原理、应用场景以及...

    ajax 异步传输php代码

    &lt;title&gt;Ajax异步传输示例 &lt;script src="ajaxcls.js"&gt;&lt;/script&gt; ()"&gt;加载数据 &lt;div id="dataContainer"&gt;&lt;/div&gt; function loadData() { var ajax = new Ajax(); ajax.get('server.php', function...

    AJAX反编译(异步传输大集合)

    以上就是AJAX异步传输的关键知识点,通过对这些概念的理解和实践,开发者可以更好地利用AJAX实现网页的无刷新更新,提高用户交互体验。通过提供的"ajax反编译"文件,你可以深入理解AJAX的内部实现,进一步提升你的...

    Ajax中使用JSON传输数据

    本篇文章将深入探讨在Ajax中如何使用JSON来传输数据,以及涉及到的相关工具和源码。 首先,让我们理解JSON的基本概念。JSON是一种基于JavaScript语法的数据表示方式,它可以表示数组、对象、数值、字符串等基本数据...

    ajax异步调用数据

    综上所述,"ajax异步调用数据"是一个关于利用JavaScript和XML(或JSON)技术实现页面无刷新的数据更新的学习项目。通过理解和实践,开发者可以掌握Ajax的基本用法,提高用户体验,实现高效的Web应用交互。

    jQuery的Ajax实现异步传输List、Map

    在本篇文章中,我们将探讨如何利用jQuery的Ajax功能实现异步传输List和Map数据结构,这对于构建动态Web应用程序至关重要。通过Ajax(Asynchronous JavaScript and XML)技术,我们可以实现在不刷新整个页面的情况下...

    AJAX异步数据通讯机制在Web程序中的应用.pdf

    AJAX异步数据通讯机制是基于Web程序开发的新方法,它提供了一种异步数据传输机制,解决了传统的Web架构中的问题。AJAX技术包括多项现有技术,包括标准的Web展现技术、文档对象模型(DOM)、XML和XSLT技术、...

    AJAX异步处理原理分析

    **AJAX异步处理原理分析** AJAX,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在不刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现局部...

    ajax异步请求数据分页

    标题中的“ajax异步请求数据分页”是指使用AJAX技术在后台动态获取所需的数据部分,而不是一次性加载整个数据集。这样可以提高网页的响应速度和用户的交互体验。AJAX的核心是XMLHttpRequest对象,它允许我们在不刷新...

    ajax异步提交源代码

    无论是纯JavaScript还是使用像Prototype这样的库,其核心都是通过XMLHttpRequest对象来实现数据的异步传输。通过上述两个示例,我们了解了如何实现Ajax异步提交以及如何处理返回的结果,这为开发高效、交互性强的Web...

    jQuery-ajax-用户名异步请求

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地...同时,需要注意数据安全,确保在传输过程中加密敏感信息,以及正确处理各种可能的错误情况。这个过程涉及到前端与后端的协作,是Web开发中的常见实践。

    AJAX异步调用代码

    1. **安全性考虑**:在实际项目中,应确保传输数据的安全性,如对敏感信息进行加密处理,防止中间人攻击。 2. **用户体验优化**:使用AJAX可以显著提升用户体验,但应避免过度依赖,确保页面加载速度和资源消耗处于...

    Ajax异步无刷新验证码

    Ajax异步无刷新验证码解决了这个问题,当用户输入错误的验证码后,只需点击刷新按钮或触发特定事件,即可在不刷新整个页面的情况下更新验证码。 Ajax是Web开发中的一种技术,它允许浏览器与服务器进行后台通信,...

    ajax异步上传文件实现

    在现代Web开发中,用户对实时交互的需求越来越高,这促使开发者寻找更高效的数据传输方式,以提高用户体验。Ajax(Asynchronous JavaScript and XML)技术的出现,解决了页面无需刷新即可更新内容的问题,极大地提升...

    ajax异步提交获取信息示例

    **Ajax异步提交获取信息详解** ...综上所述,通过AJAX异步提交,我们可以实现页面无刷新的数据获取,提高用户交互体验。结合实际项目需求,理解并熟练运用这些知识点,将有助于提升Web应用的性能和用户体验。

    Ajax 跨域异步传输

    总的来说,Ajax跨域异步传输是现代Web开发中的重要技术,JSONP提供了一种简单的方法来解决跨域问题,但仅限于GET请求。对于更复杂的跨域需求,开发者应当考虑使用CORS,它提供了更广泛的支持,包括POST和其他HTTP...

    基于ASP.NET+XML +JSON实现的Ajax 异步数据操作程序源码例子

    这个源码例子展示了如何在ASP.NET框架下利用Ajax技术进行异步数据操作,结合XML和JSON这两种数据交换格式,来提高Web应用的用户体验。接下来,我们将详细探讨这些知识点。 首先,ASP.NET是微软公司推出的一种用于...

Global site tag (gtag.js) - Google Analytics