jquery ajax 请求 乱码

 jquery ajax 请求 乱码

 

 一、前台:解决中文提交乱码contentType:"application/x-www-form-urlencoded; charset=UTF-8"

 

$.ajax({  

                url:xpcHomeLocation+'PlugInManageAction.do?operation=getMenus',  

                dataType:"json",  

                contentType:"application/x-www-form-urlencoded; charset=UTF-8", //解决中文提交乱码问题  

                success:function(result){  

                      

                }  

            })  

 

二、后台:解决中文返回jsp页面乱码 response.setContentType("text/xml;charset=utf-8");//fix the Chinese 

 

       ObjectMapper objectMapper=new ObjectMapper();  

       Map<String,Object> result=new HashMap<String,Object>();  

       result.put("menus",StringUtils.join(menusNameList.toArray(),","));//use to autocomplete  

        

       String out=objectMapper.writeValueAsString(result);  

       response.setContentType("text/xml;charset=utf-8");//解决中文返回乱码问题  

       response.getWriter().print(out);  

 

或者:json格式输出第二种方法

        JSONArray json = JSONArray.fromObject(SysList);//SysList是一个List  

        //设置response的ContentType解决中文乱码  

        response.setContentType("text/html;charset=UTF-8");  

        response.getWriter().print(json.toString());  

 

三、取数据乱码:

1.首先不要用get提交而要用post  

2.然后encodeURI参数 

3.request.setCharacterEncoding("utf-8");

   response.setCharacterEncoding("utf-8");

   response.setContentType("application/x-json");

4.后台menu=URLDecoder.decode(menu,"utf-8");取出正确数据

 

$.ajax({  

                url:xpcHomeLocation+'PlugInManageAction.do?operation=checkMenuExist',  

                type:"post",  

                dataType:"json",  

                data:{  

                    "tab":encodeURI(tabName),  

                    "menu":encodeURI(menu),  

                    "menui18n":encodeURI(menui18n),  

                    "menuI18nTitle":encodeURI(realMenu)  

                },  

                contentType:"application/x-www-form-urlencoded; charset=UTF-8",   

                success:function(result){},error{}  

四。解决返回的json乱码问题

       response.setContentType("text/json;charset=UTF-8");

       或

       response.setContentType("application/json;charset=UTF-8");

       PrintWriter writer = response.getWriter();

       writer.print(myJson);、

     注:

     json 的 contentType 常见写法有: text/json & text/javascript . 

     但是 这个 text/json 其实是根本不存在的, 而 text/javascript 在有些时候客户端处理起来会有歧义. 

     对于json的contentType , rfc里定义的标准写法是 :application/json .

     在这里毫无疑问 我们应该选择标准写法的 application/json

猜你喜欢

转载自vernonchen163.iteye.com/blog/1922938