jquery ajax返回值乱码解决方法

来源:互联网 发布:一座城池知乎 编辑:程序博客网 时间:2024/05/17 23:02

jquery ajax返回值乱码解决方法

来源:   时间:2013-09-05 20:23:11   阅读数:2770
分享到:0

[导读] jquery ajax乱码是很多朋友碰到的问题,今天我们用实例来帮你解决一下关于jquery ajax返回值乱码解决方法吧,其实都是一些小细节哦。 jquery ajax乱码是很多朋友碰到的问题,今天我们用实例来帮你解决一下关于

jquery ajax乱码是很多朋友碰到的问题,今天我们用实例来帮你解决一下关于jquery ajax返回值乱码解决方法吧,其实都是一些小细节哦。

jquery ajax乱码是很多朋友碰到的问题,今天我们用实例来帮你解决一下关于jquery ajax返回值乱码解决方法吧,其实都是一些小细节哦。

实例解决方法

encodeuri(encodeuri(data))  ///注意两次编码!! 
$.ajax({ 
       type: "post", 
       url: url, 
       data:data, 
       contenttype :"application/x-www-form-urlencoded;charset=utf-8", 
       cache: false, 
       success  : viewajax.handle(this.pdomobj, this.div, url) , 
       error : viewajax.error(this.pdomobj, this.div, url) 
    });  


java:

string queryvalue = java.net.urldecoder.decode((string)request.getparameter(querycode),"utf-8") ;


方法二

ajax发送请求时默认的编码是utf-8,前台与服务器的编码要统一这已经是不许再重复了,但即使如此,意外还是发生了;;;;;
网页特效:    //注意下面的两次转码,在server端也是进行了两次转码才获取到正常的数据

$("#querybyname").click(function(){
var name = encodeuri(encodeuri($("#qname").val()));
$.ajax({
type:"post",
url:"querybyname.action",
contenttype :"application/x-www-form-urlencoded;charset=utf-8", 
data:{
queryname:name
},
success:function(msg){
$("#signwork").html(msg);
}
})
})

server :struts2

string name =getqueryname();
name =java.net.urldecoder.decode(name, "utf-8");
system.out.println("action......bbbb"+name);
string name01=java.net.urldecoder.decode(name, "utf-8");
system.out.println("............cccc"+name01);

此处用了两次转码才获取到正确的数据,具体原因分析中;
据说还有另外一种简单的途径就是设置
tomcat对配置文件server.xml
uriencoding就ok了


最后发现了问题的根源,其实是我的struts2的配置文件出现了一点点问题

在配置文件中就有这样一条配置信息

<constant name="struts.i18n.encoding" value="utf-8"></constant>

这个一定要和页面的编码一致,如果使用ajax发送请求的话默认的utf-8编码,但后台struts配置文件却是GBK,让我好生郁闷!!最后在使用常规action提交时也出现了乱码,才发现是这里出现了问题。其实如果全部使用utf-8的编码方式是不会出现乱码的


0 0
原创粉丝点击