Ajax中如果url中含有中文,如何在后台中正确取得(针对IE和火狐)

本人刚学习javaweb开发,在学习ajax时遇到一个问题,在此记录。

问题如下:

1.ajax代码:

               var url = "url地址?param=中国";

               httpRequest.open("GET", url, true);

               httpRequest.send(null);

2.后台代码:String param = new String(request.getParameter("param").getBytes("iso-8859-1"),"utf-8");

结果显示:火狐能显示成中文,IE不行。

 

个人实践得出解决方法:

1.使用post方法,ajax代码:

                            var param= "param=中国";

                            httpRequest.open("POST", url地址, true);

                           httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//POST请求发送前,需要设置正确的请求头,必须添加在send之前,表示表单数据会采用“名字=值”的形式

                            httpRequest.send(param);

2.后台代码:

                     request.setCharacterEncoding("utf-8");
                     String param = request.getParameter("param");

结果显示:火狐和IE都能显示中文。

           

你可能感兴趣的:(Ajax中如果url中含有中文,如何在后台中正确取得(针对IE和火狐))