最近遇到AJAX/JQuery 提交form表单出现乱码的问题,以下是我们项目中的解决方案。
client端AJAX/JQuery 提交表单,类似下面代码:
--提交给action
var dataString = 'subject=' + paramSubject + '&mailbody=' + paramMailBody;
$(function(){
$.ajax({
type: "POST",
url: '<%=request.getContextPath()%>/app/xxx/saveDraft.do',
data: dataString,
processData: false,
success: function(){}
});
return false;
});
--或提交给JAX-RS Resource
var dataStr = "&subject="+subject+"&mailbody="+mailbody;
$.ajax({
url:urlPath,
data: dataStr,
type:'POST',
dataType:'json',
contentType:'application/x-www-form-urlencoded',
success:function(data, status, xhr) {
},
error:function(xhr,error,exception) {
exception.toString();
}
});
对于FireFox来说,提交的表单的request的Content-Type会像下面这样:
Content-Type application/x-www-form-urlencoded;charset=UTF-8
请求提交后,首先经过filter
request.setCharacterEncoding("UTF-8");
然后到了Action 或者 JAX-RS Resource后拿到的表单数据如果有中文就会有乱码。
解决方案其实很简单:
1. client端的js里面用encodeURIComponent方法encode表单数据,然后再ajax提交后台。
var dataString = 'subject=' + encodeURIComponent(paramSubject) + '&mailbody=' + encodeURIComponent(paramMailBody);
2. Server端Action 或者 JAX-RS Resource使用下面的代码解码:
String mailbody = java.net.URLDecoder.decode(mailbody, "UTF-8");
分享到:
相关推荐
通过以上方法,我们可以在Jquery中有效地解决Ajax提交乱码的问题,确保客户端和服务器端之间的数据传输准确无误。关键在于理解乱码产生的原因,即字符编码的不一致,以及通过设置正确的`Content-Type`和使用`...
本文将深入探讨jQuery中的Ajax过滤器及其在Ajaxform表单提交中的应用,以及如何解决可能出现的乱码问题。 首先,让我们理解什么是jQuery Ajax过滤器。在jQuery中,`ajaxSend`、`ajaxComplete`、`ajaxSuccess`、`...
在使用Asp进行Web开发过程中,通过JQuery的AJAX方法提交表单数据时,中文字符很容易出现乱码问题。为了解决这个问题,我们可以使用Asp自带的unescape()和escape()函数来进行编码和解码操作,以此确保数据在客户端与...
总的来说,解决`jQuery Ajax`传递中文参数乱码问题的方法包括以下步骤: 1. 确保前端页面的`meta`标签指定正确的字符集,如`<meta charset="UTF-8">`。 2. 在`$.ajax`调用中,设置`contentType`为`"application/x-...
现在,针对GBK编码环境下使用jQuery AJAX提交表单的问题,文章提出了一个终极解决方案,也就是非二次编码方法。这种方法避免了复杂的编码解码过程,可以有效解决问题。 核心思想是这样的:由于GBK和UTF-8编码是不同...
在Web开发过程中,使用JQuery的ajaxSubmit方法进行表单提交时,中文乱码问题是一个常见的困扰。中文乱码问题通常发生在数据的提交和接收过程中,由于字符编码的不一致导致。为了解决这个问题,首先需要了解JQuery的...
- **POST**: 同样存在乱码问题,可以通过设置Content-Type和服务器端编码来解决。 7. **实现细节**: - **GET**: 参数直接拼接在URL后面,如 `http://example.com?name=value`。 - **POST**: 需要通过设置Content...
表单提交和AJAX提交的区别在于,表单提交时,浏览器会根据页面的编码来编码数据,然后以该编码形式发送给服务器,服务器也应使用相同的编码解析。而在AJAX提交中,数据通常是JSON格式或者URL编码的字符串,这时就...
jQuery.validationEngine是一款强大的JavaScript插件,专用于前端表单验证。这款插件以其简洁的API、丰富的验证规则和良好的国际化支持而备受青睐。在中文环境中,它可以为用户提供友好的中文提示,确保用户输入的...
4. **配置过滤器**:配置`CharacterEncodingFilter`以解决POST请求可能出现的乱码问题,确保请求和响应使用UTF-8编码。 5. **配置SpringMVC配置文件**(例如`applicationContext-mvc.xml`):定义处理器映射器、...
此外,还可以自定义消息内容,添加按钮,甚至插入HTML代码,以实现更为复杂的功能,如表单提交、链接跳转等。 再者,jQuery Messager.js 支持多种触发方式,包括点击按钮、页面加载、Ajax 请求完成等事件。这使得...
通过上述步骤,可以看出ajaxForm()方法可以极大地简化通过AJAX方式提交表单的过程,使得表单提交更加高效、快速且用户体验更佳。而jQuery Form插件则为开发者提供了一种简洁、强大的方式来升级传统表单,让Web应用...
在***开发中,乱码问题是常见的困扰开发者的问题,特别是涉及到数据编码、页面显示、以及AJAX提交等方面。本篇总结将围绕这些问题展开详细讨论,帮助开发者理解和解决乱码问题。 首先,***页面显示乱码问题经常会...
Ajax处理字符编码时可能出现乱码,解决方法包括设置响应头的字符集、在JavaScript中处理字符编码,以及确保服务器返回的响应内容和客户端的字符集一致。 ### 4. 同步与异步 - **同步**:请求发送后,浏览器会等待...
### js传中文参数controller里获取参数乱码问题解决方法 #### 背景与问题描述 在Web开发中,前后端交互是常见的场景之一。当从前端(如JavaScript)向后端(例如Java中的Controller)传递包含中文字符的参数时,...
在描述中提到的网页可能有乱码问题,这可能与字符编码设置有关,使用jQuery可以轻松地对页面中的文本进行操作,例如修改元素的文本或替换内容,以解决可能出现的编码问题。 其次,jQuery提供了丰富的DOM操作方法,...
解决这个问题的方法是统一编码格式,或者在发送和接收数据时进行编码转换。 jQuery还提供了一些实用的函数来处理字符串,比如$.trim()用于去除字符串首尾的空白字符,$.escapeSelector()用于转义CSS选择器中的特殊...
本篇文章将聚焦于Ajax编码过程中常见的问题和解决方案,主要从以下几个方面进行探讨: 1. **跨域问题**: 在使用Ajax进行请求时,由于浏览器的同源策略限制,通常只能向同源的服务器发送请求。如果需要向其他域名...