要异步传输的数据:
....
<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(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它的核心是JavaScript,利用XMLHttpRequest对象与服务器进行通信,...
**Ajax(Asynchronous JavaScript and XML)异步传输技术是Web开发中的一个重要概念,它使得网页可以在不刷新整个页面的情况下与服务器进行数据交换,提升了用户体验。本文将深入探讨Ajax的工作原理、应用场景以及...
<title>Ajax异步传输示例 <script src="ajaxcls.js"></script> ()">加载数据 <div id="dataContainer"></div> function loadData() { var ajax = new Ajax(); ajax.get('server.php', function...
以上就是AJAX异步传输的关键知识点,通过对这些概念的理解和实践,开发者可以更好地利用AJAX实现网页的无刷新更新,提高用户交互体验。通过提供的"ajax反编译"文件,你可以深入理解AJAX的内部实现,进一步提升你的...
本篇文章将深入探讨在Ajax中如何使用JSON来传输数据,以及涉及到的相关工具和源码。 首先,让我们理解JSON的基本概念。JSON是一种基于JavaScript语法的数据表示方式,它可以表示数组、对象、数值、字符串等基本数据...
综上所述,"ajax异步调用数据"是一个关于利用JavaScript和XML(或JSON)技术实现页面无刷新的数据更新的学习项目。通过理解和实践,开发者可以掌握Ajax的基本用法,提高用户体验,实现高效的Web应用交互。
在本篇文章中,我们将探讨如何利用jQuery的Ajax功能实现异步传输List和Map数据结构,这对于构建动态Web应用程序至关重要。通过Ajax(Asynchronous JavaScript and XML)技术,我们可以实现在不刷新整个页面的情况下...
AJAX异步数据通讯机制是基于Web程序开发的新方法,它提供了一种异步数据传输机制,解决了传统的Web架构中的问题。AJAX技术包括多项现有技术,包括标准的Web展现技术、文档对象模型(DOM)、XML和XSLT技术、...
**AJAX异步处理原理分析** AJAX,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在不刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现局部...
标题中的“ajax异步请求数据分页”是指使用AJAX技术在后台动态获取所需的数据部分,而不是一次性加载整个数据集。这样可以提高网页的响应速度和用户的交互体验。AJAX的核心是XMLHttpRequest对象,它允许我们在不刷新...
无论是纯JavaScript还是使用像Prototype这样的库,其核心都是通过XMLHttpRequest对象来实现数据的异步传输。通过上述两个示例,我们了解了如何实现Ajax异步提交以及如何处理返回的结果,这为开发高效、交互性强的Web...
在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地...同时,需要注意数据安全,确保在传输过程中加密敏感信息,以及正确处理各种可能的错误情况。这个过程涉及到前端与后端的协作,是Web开发中的常见实践。
1. **安全性考虑**:在实际项目中,应确保传输数据的安全性,如对敏感信息进行加密处理,防止中间人攻击。 2. **用户体验优化**:使用AJAX可以显著提升用户体验,但应避免过度依赖,确保页面加载速度和资源消耗处于...
Ajax异步无刷新验证码解决了这个问题,当用户输入错误的验证码后,只需点击刷新按钮或触发特定事件,即可在不刷新整个页面的情况下更新验证码。 Ajax是Web开发中的一种技术,它允许浏览器与服务器进行后台通信,...
在现代Web开发中,用户对实时交互的需求越来越高,这促使开发者寻找更高效的数据传输方式,以提高用户体验。Ajax(Asynchronous JavaScript and XML)技术的出现,解决了页面无需刷新即可更新内容的问题,极大地提升...
**Ajax异步提交获取信息详解** ...综上所述,通过AJAX异步提交,我们可以实现页面无刷新的数据获取,提高用户交互体验。结合实际项目需求,理解并熟练运用这些知识点,将有助于提升Web应用的性能和用户体验。
总的来说,Ajax跨域异步传输是现代Web开发中的重要技术,JSONP提供了一种简单的方法来解决跨域问题,但仅限于GET请求。对于更复杂的跨域需求,开发者应当考虑使用CORS,它提供了更广泛的支持,包括POST和其他HTTP...
这个源码例子展示了如何在ASP.NET框架下利用Ajax技术进行异步数据操作,结合XML和JSON这两种数据交换格式,来提高Web应用的用户体验。接下来,我们将详细探讨这些知识点。 首先,ASP.NET是微软公司推出的一种用于...