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 相关文章推荐
基于jQuery实现瀑布流页面
Apr 11 jQuery
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
jQuery手风琴的简单制作
May 12 jQuery
jQuery操作之效果详解
May 19 jQuery
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
jQuery获取随机颜色的实例代码
May 21 jQuery
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
jquery的$().each和$.each的区别
Jan 18 jQuery
jquery操作select常见方法大全【7种情况】
May 28 jQuery
jQuery 筛选器简单操作示例
Oct 02 jQuery
JQuery复选框全选效果如何实现
May 08 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中文乱码解决方案
2015/03/05 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
从0搭建vue-cli4脚手架
2020/06/17 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
python处理“
2019/06/10 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
行政求职信
2014/07/04 职场文书
司机岗位职责
2015/02/04 职场文书
2015年护士节活动总结
2015/02/10 职场文书
离婚案件上诉状
2015/05/23 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
windows系统搭建WEB服务器详细教程
2022/08/05 Servers