`
csblot203
  • 浏览: 14559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

根据提交方式来防止AJAX乱码问题(比较好的解决方案)

阅读更多
ajax默认中文提交以utf-8格式,所以只需要在你的web服务加个过滤器,设置下编码格式即可;
1.注意为防止编码设置无效,请在编码设置完后,显示调用下request.getParameter("");(tomcat5.0测试通过)
据说其他服务器,可能显示调用了,也有可能被服务器重置;
2.有时已经有filter需要设置gbk编码,为了不影响原先的filter功能,我是直接在ajax提交时候,带个服务端要设置的编码格式 例如 Ajax.request("/myaction.do?charset=utf-8")
服务端filter,要用request.getQueryString() 截取charset值 ,注意千万不要用request.getParameter("charset");
3.注意,在没设置编码格式前,不要加 watch监控 比如有个表达式 request.getParameter("*");
首先分析通过正常GET,Post提交页面和AJAX提交页面有什么不同看截图
Get ,Post正常方式提交数据

AJAX方式提交数据

主意AJAX多了个x-requested-with信息所以可以采用获取HTTP Header方法来判断是采用那种提交方式提交数据的所以
主要代码如下
public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException { 

// Conditionally select and set the character encoding to be used 
HttpServletRequest httpRequest = (HttpServletRequest) request; 

HttpServletResponse httpResponse = (HttpServletResponse) response; 

String requestedWith = httpRequest.getHeader("x-requested-with"); 
String type = request.getContentType(); 
if (requestedWith != null && "XMLHttpRequest".equals(requestedWith) 
&& null != type 
&& "application/x-www-form-urlencoded".equals(type)) { 
httpRequest.setCharacterEncoding("UTF-8"); 
httpResponse.setCharacterEncoding("UTF-8"); 
httpRequest.getParameterMap(); 
} else { 

request.setCharacterEncoding("gbk"); 
response.setContentType("text/html;charset=" + "gbk"); 

} 
chain.doFilter(request, response); 

} 
分享到:
评论
1 楼 hjg1988 2009-09-18  
你这个跟http://www.iteye.com/topic/157698#里面二楼贴子一样的吧
我前些时候遇到过这个问题,我也写了一篇博客记录了一下(http://hjg1988.iteye.com/admin/blogs/467715),跟你的方案有不同,不过看起来你这个方案似乎更好啊,我回去测试一下。。

相关推荐

    Ajax乱码解决方案

    ### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...

    java认证_Ajax中文乱码问题及解决方法.doc

    【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...

    JSP中文乱码问题最优解决方法

    本文将详细探讨如何有效地解决JSP页面中的中文乱码问题,并提供具体的解决方案。 #### 一、了解中文乱码的原因 中文乱码主要是因为编码不一致导致的。例如,当浏览器发送请求时使用了一种字符集(如GBK),而...

    昨天看见一位网友需要解决一些关于AJAX的FORM提交的问题,现在把一个实例贴出来,希望对广大爱好者有帮助。

    本文将深入分析此案例中的关键技术和代码实现方式,为读者提供一个完整的解决方案。 #### 二、核心概念介绍 1. **AJAX(Asynchronous JavaScript and XML)**:一种在无需重新加载整个网页的情况下,能够更新部分...

    STRUTS+AJAX+JSP 请求到后台乱码问题解决方法

    在本篇文档中,我们针对使用Struts、Ajax和JSP技术栈时出现的请求乱码问题,提出了解决方案,即通过JavaScript函数encodeURI对请求参数进行转码。 首先,我们来了解一下Struts、Ajax和JSP这三项技术: 1. Struts是...

    struts乱码讲解

    ### Struts乱码问题详解与解决方案 #### 一、引言 在Web开发过程中,特别是在使用Struts框架进行开发时,经常会遇到字符编码的问题,尤其是中文字符的乱码问题。本文将详细介绍Struts中常见的乱码现象,并提供具体...

    js传中文参数controller里获取参数乱码问题解决方法

    通过上述解决方案的应用,我们可以有效地解决前后端交互中出现的中文乱码问题。关键是确保前端发送请求时指定了正确的字符编码,并且后端能够正确解析这些编码。此外,合理的服务器配置也是保证系统稳定运行的重要...

    ajax局部刷新一个div下jsp内容的方法

    此外,需要注意的是,使用AJAX进行局部刷新时,可能会遇到一些问题,比如防止表单重复提交、处理中文乱码、验证机制等。以下是一些相关的解决方案: - **防止重复提交**:在JSP中,可以使用session或cookie来记录...

    fancyupload

    在【描述】中提到,fancyupload的整个工程是基于utf-8编码的,这意味着它能够很好地支持各种国际字符集,不会出现乱码问题,对于全球化网站来说非常友好。开发者将源代码开源,这为其他开发者提供了参考和定制的可能...

    文章管理系统

    11.解决后台编辑器之前空2格低于一个汉字的问题 12.完善几个细节问题 13.整合20121103~20121220补丁 2012年12月20日 ★更新方式:admin文件夹改成你后台目录名,然后补丁包里的所有文件覆盖进去。 1.富媒体...

    formValidator3.3的ajaxValidator一些异常分析

    然而,在实际应用中,ajaxValidator经常遇到一些异常情况,本文将深入探讨其中的一个典型问题,并提供相应的解决方案。 问题描述: 在使用ajaxValidator时,有时会遇到一种现象:无论验证是否成功,当输入控件重新...

    LED装饰公司网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    工商注册代理公司网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    通用网站模板 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    办公家具网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    蓝色博客网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    货运代理公司网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    智能学校网站管理系统 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    室内设计装饰公司网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

    集团公司网站 v1.0.zip

    任意设置的会员级别和浏览权限精确到每条记录,这对于那些希望不同内容针对不同查看对象开放来讲,无疑是最佳解决方案。 会员分组功能,可以设置不同的分员组别。 注册可发送邮件,宣传公司信息。 忘记密码可...

Global site tag (gtag.js) - Google Analytics