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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值