ajax或url传值之乱码再见

前端之家收集整理的这篇文章主要介绍了ajax或url传值之乱码再见前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在工作中遇到几次url乱码的问题,这次就做下整理:

$.ajax({
		"contentType" : "application/json","url" :xxx/xxx/xxx.action?a=不要乱码&b=不要再次乱码,"dataType" : "json","success" : function(data) {
			//bootBox.alert('取消成功!',function(){});
			hide("alert_cancel_reason_div");
			location.reload();
		}
	});
后台通过 String a = this.getRequest().getParameter("a");

通过断点可以看到这个值变成了你看不懂的符号,就是乱码,怎么解决呢?

1.通过类似于加解码的方式

var url = encodeURI(encodeURI("xxx/xxx/xxx.action?a=不要乱码&b=不要再次乱码"))

2。后台通过一次解码的方式
String a= this.getRequest().getParameter("a");
a= java.net.URLDecoder.decode(a,"UTF-8");//一次解码 

这样就可以通过断点看到中文


同时从后台前台传也会出现乱码,我借鉴了下网上的资料,这里补充下:

后台

 response.setContentType("text/xml;charset=UTF-8"); 
AJAX 在接收responseTextresponseXML的值的时候是按照UTF-8的格式来解码的,所以服务器要向客户端发送数据的时候,也要采用utf-8编码,response.setContentType("text/xml;charset=UTF-8").

如果上述方法仍然解决不了乱码问题,那你尝试一下把jsp,htm,java文件UTF-8编码格式保存.总之,前后台数据交互都采用utf-8编码就行了.

猜你在找的Ajax相关文章