标签:
1、乱码产生过的原因
所有浏览器提供的AJAX对象对请求参数使用UTF-8进行编码服务器默认使用iso-8859-1去解码
编码与解码不同就会产生乱码
2、解决方式:
request.setCharacterEncoding("UTF-8");
注:火狐就不用这句代码,是因为这个浏览器会在发送请求数据包中告诉服务器,它是哪种方式进行的数据编码。
3、为什么会产生乱码
IE浏览器提供的Ajax对象会使用GBK字符集对请求参数进行编码,而其他浏览器会使用UTF-8来编码。
服务器默认的情况下会使用ios-8859-1进行解码
编码方式与解码方式不一致即产生乱码
4、解决GET请求时的乱码问题
1).指定字符集进行编码
比如:tomcat可以修改conf/server.xml文件中
<Connector UREncoding="utf-8">,使用tomcat按utf-8方式解码。
2).使用encodeURL对请求地址进行编码
encodeURL会使用utf-8对请求地址中的中文参数进行编码
其实问题的根本原因就是IE的与众不同。修改完成后,重启tomcat,不用IE来运行就会发现可以正常读取表单的get方式提交的中文。
针对IE:
var uri=‘xxx.do?uname=‘+document.getElementById(‘username‘).value;
xhr.open(‘get‘,encodeURI(uri),true);
5、Ajax的典型应用
级联菜单
标签:
原文地址:http://www.cnblogs.com/Crow00/p/4588203.html