jQuery发请求传输中文参数乱码问题的解决方案


Posted in jQuery onMay 22, 2018

最近在做的需求,涉及到级联查询,需要根据上级下拉框的内容,查询出下级下拉框列表,因为级联只有两级,且后期对表中的数据几乎不会改动,所以我设计的表存的直接是中文。

菜单如下:

jQuery发请求传输中文参数乱码问题的解决方案

代码如下:

var url = "${basePath}/institutionConfig/getDepartmentByCenter.do?param=" + center;
$.get(url, function (data) {
 var list = data.data;
 for (var i = 0; i < list.length; i++) {
   departmentSelector += "<option value='" + list[i] + "' ";
   if (department && list[i] == department) {
    departmentSelector += "selected='selected'";
   }
   departmentSelector += ">" + list[i] + "</option>";
 }
 $("#accountDepartmentAdd").html(departmentSelector);
});

我用的是$.get(url, callback)向后台发送请求的,由于将参数直接以GET方式发送,所以浏览器对参数用URL编码进行了encode,而后台获取到的参数为:

jQuery发请求传输中文参数乱码问题的解决方案

可以看到,param接收到的是乱码。所以我进行了进一步的处理,即转码:

String center = new String(param.getBytes("iso8859-1"), "utf-8");

这样接收到的就是中文了。

但是这样的做法在测试环境竟然报错了,分析了下原因,发现测试环境接收到的就是正确的中文,转码后反而错了。所以,解决方案应该是改页面的请求。因为使用了GET方式导致的参数被编码了,所以改为POST请求,POST请求会提交原始数据:

var url = "${basePath}/institutionConfig/getDepartmentByCenter.do";
$.ajax({
  url: url,
  data: {"param": center},
  dataType: "json",
  type: "POST",
  success: function (data) {
   var list = data.data;
   for (var i = 0; i < list.length; i++) {
    departmentSelector += "<option value='" + list[i] + "' ";
    if (department && list[i] == department) {
     departmentSelector += "selected='selected'";
    }
    departmentSelector += ">" + list[i] + "</option>";
   }
   $("#accountDepartmentAdd").html(departmentSelector);
  }
 });

总结

以上所述是小编给大家介绍的jQuery发请求传输中文参数乱码问题的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
jQuery tip提示插件(实例分享)
Apr 28 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
使用jQuery实现动态添加小广告
Jul 11 jQuery
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
jQuery实现左右滑动的toggle方法
Mar 03 jQuery
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
jQuery实现购物车全功能
Jan 11 jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 #jQuery
jQuery获取随机颜色的实例代码
May 21 #jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 #jQuery
jQuery中元素选择器(element)简单用法示例
May 14 #jQuery
jQuery中的类名选择器(.class)用法简单示例
May 14 #jQuery
基于jQuery实现无缝轮播与左右点击效果
May 13 #jQuery
jQuery实现模糊查询的方法分析
May 10 #jQuery
You might like
php访问查询mysql数据的三种方法
2006/10/09 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php中socket通信机制实例详解
2015/01/03 PHP
基于javascript实现listbox左右移动
2016/01/29 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python 的 Socket 编程
2015/03/24 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
python requests 测试代理ip是否生效
2018/07/25 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
心理学专业毕业生推荐信范文
2013/11/21 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
经济贸易系求职信
2014/08/04 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python