在Ajax程序中,在URL拼接时带有中文参数是不可避免的事情,如
var url='/YourAppName/CreateTodo.do?name='+name;其中name是来自inputbox的取值,它可能带有中文。
如果让Ajax直接提交这样的URL,那么后台用request.getParameter("name");这样的方法得到的name就会含有乱码。
解决之道是先对URL进行两次编码,用的是JavaScript的encodeURI函数,具体代码如下:
var url=encodeURI('/YourAppName/CreateTodo.do?name='+name);
url=encodeURI(url);
在后台的Servlet或是Action中,可以这样得到正确的文字:
Sting name=java.net.URLDecoder.decode(request.getParameter("name"),"utf-8");
就是这样,值得注意的是,中文环境的机器用容器跑WebApp也许不需要这样的处理,但其它环境如日文,英文就非此不可了,因此在编码时尽可能这样处理一下,如果安装后出现问题就会造成慌乱了。我们在编写Web程序时,最好让文件编码,数据库编码,输出编码,网页编码保持一致,这样能省去很多麻烦。
以上操作的具体原理请见:
http://yiminghe.javaeye.com/blog/243812
http://yiminghe.javaeye.com/blog/247837
相关推荐
本文将基于提供的文件信息,详细解析两种解决Ajax提交后台取值中文乱码的方法。 ### 方法一:使用URL编码 在第一个示例中,开发者通过调用`encodeURIComponent()`或`encodeURI()`函数对请求URL中的参数进行编码。...
在实际开发中,可以结合使用以上方法来解决Ajax中文乱码问题。例如,可以使用jQuery的`$.ajax`方法,设置`contentType`和`dataType`属性,以及在成功回调函数中处理响应数据: ```javascript $.ajax({ url: 'your-...
### AJAX提交中文乱码解决方法 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过JavaScript发起异步请求,与服务器进行数据交换,从而...
本文将详细介绍如何在后台引用AJAX函数,以VS2010 (VB.NET)作为开发工具,SQL Server 2000作为数据库进行演示。 首先,我们需要在项目中引入AJAX库。步骤S1涉及在项目中添加对`ajax.dll`的引用。这可以通过右键点击...
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ ...
下面将详细介绍如何利用jQuery-AJAX调用ASP.NET后台方法。 1. **创建WebMethod** 在ASP.NET的C#或VB.NET代码中,我们可以创建一个静态的WebMethod,标记为 `[WebMethod]` 或 `[ScriptMethod]`,以便可以从...
Thymeleaf支持表达式语言(EL),可以获取模型属性并将其插入到URL中。例如,如果需要根据用户ID获取数据,可以这样做: ```html var userId = /*[[${userId}]]*/ 123; // 假设userId是模型属性 $.ajax({ url: ...
**Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术...无论是在小规模项目还是大型复杂应用中,正确理解和使用Ajax都能带来显著的性能提升和用户体验改善。
在上面的代码中,我们使用 `$.ajax()` 方法来调用后台方法 `RecordData`,并将参数 `browersType` 传递给后台方法。 在后台,需要使用 `[System.Web.Services.WebMethod()]` 特性来标记方法为可被调用的。示例代码...
在这个场景下,我们将探讨如何使用Ajax与JavaWeb进行后台交互,实现数据的分页显示,以及Gson库在数据传输中的作用。 首先,Ajax的核心是JavaScript对象XMLHttpRequest,它允许我们在后台与服务器进行异步通信。...
解决Ajax GET请求中文参数乱码的方法有以下几点: 1. 设置请求头编码:在发送Ajax请求时,可以设置`contentType`为`'application/x-www-form-urlencoded; charset=UTF-8'`,确保数据以UTF-8编码发送。 ```...
jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...
在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的问题:即通过Ajax发送带有中文字符的数据时,后端接收到的数据出现乱码现象。...
### AJAX 前台JS调用后台方法详解 随着互联网技术的发展,前后端分离成为一种趋势,而异步请求作为前后端交互的重要手段之一,在实际开发中占据着重要的位置。AJAX(Asynchronous JavaScript and XML)是一种在无需...
本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现
在这个例子中,我们创建了一个新的XMLHttpRequest对象,设置请求方法为POST,目标URL为'/api/data',并指定了Content-Type为'application/json',表示我们将发送Json格式的数据。当请求状态改变时,我们检查...
本章将深入探讨XML和JSON,它们在Ajax中的角色,以及如何在JavaScript中解析和生成这些格式的数据。同时,也会对比两种格式的优缺点,帮助开发者选择合适的数据交换格式。 **第三章:XMLHttpRequest对象** ...
URL编码是一种标准,用于将特殊字符(包括非ASCII字符)转换为可安全包含在URL中的形式。在ISO-8859-1编码中,只有英文字符可以直接用于URL,而中文字符需要被编码。默认情况下,Tomcat服务器的Connector配置可能将...
无论使用哪种方法,都需要确保服务器返回的JSON数据格式正确,否则在解析时会抛出错误。同时,为了兼容旧版本的浏览器,可能需要引入polyfill库,如`whatwg-fetch`和`es6-promise`。 总结,AJAX解析JSON数据主要...