可恶的乱码!ajax也乱码!

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

好奇怪工作这么长时间,居然是在自己的练手小项目上发现了这个问题。 ajax的默认编码是utf-8! 无论是xmlhttp返回的数据 还是post提交的数据都是以utf-8 编码形式的数据 中午我还苦恼了一阵 为什么表单提交的数据就不乱码,用ajax提交的就乱码呢??? 我本身项目是gbk编码的,而且使用了全局过滤器来规避编码形式 都是gbk的。 就因为ajax post过去的数据是UTF-8的,而项目是GBK的 所以会产生乱码。 而前台返回的数据没有乱码是因为 我当时提前在servlet 中增加

<!-- lang: java -->
resp.setContentType("text/html;charset=gbk");

所以就算是ajax返回的数据是utf-8,被哥哥我这么一转码 也不会乱码了。 但是request.getParameter 得到的数据还是会乱码 解决方法 是需要前后台同时协作完成的! 前台js:

<!-- lang: js -->
$.post('check.action',{username:encodeURI($('#username').val())},function (data,textStatus){
      var flag = data.flag;
      var msg = data.msg;
      switch (flag){
        case 0:
          $('#username +p').find('small').css('color','red');
          $('#username + p').find('small').text(msg);
          break;
        case 1:
         $('#username + p').find('small').text(msg); 
          $('#username +p').find('small').css('color','green');
          break;
      }
     },'json');

利用encodeURI将数据进行encode

后台java:

<!-- lang: java -->
userName = URLDecoder.decode(userName,"UTF-8");
原文链接:https://www.f2er.com/ajax/166388.html

猜你在找的Ajax相关文章