牛骨文教育服务平台(让学习变的简单)
博文笔记

利用jquery实现Ajax技术,post方式传值中文乱码问题的解决办法。

创建时间:2014-09-21 投稿人: 浏览次数:7544

链接:http://www.jb51.net/article/31791.htm jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 复制代码代码如下:
$.ajax({ 
  dataType : ‘json",type : ‘POST",url : ‘http://localhost/test/test.do",data : {id: 1, type: ‘商品"},success : function(data){ } } ); 


问题: 

提交后后台action程序时,取到的type是乱码 
解决方法: 
方法一:提交前采用encodeURI两次编码,记住一定是两次 
1.修改以下代码 
复制代码代码如下:
data:{id:1, type:encodeURI(encodeURI(‘商品"))} 

2.在后台action里要对取得的字符串进行decode 
1、String type = request.getParameter(“type”); 
2、type = URLDecoder.decode(type, “UTF-8″); 
方法二:ajax配置contentType属性,加上charset=UTF-8 
在ajax方法中加入以下参数 
contentType: “application/x-www-form-urlencoded; charset=UTF-8″使用其它js框架或者xhr都是差不多,设置header中contentType即可, 

这里关键是charset=UTF-8,如果没有这个,是不行的,默认jQuery里的contentType是没有的 。


自己测试后发现,对于get方式,方法一有效;对于post方式,在后台加上request.setCharacterEncoding("utf-8");和response.setCharacterEncoding("utf-8");即可解决。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。