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 dataTable 获取某行数据
May 05 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
基于jquery的on和click的区别详解
Jan 15 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 jQuery
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
jquery实现搜索框功能实例详解
Jul 23 jQuery
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
jQuery实现轮播图源码
Oct 23 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 验证码实例代码
2010/06/01 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python获取从命令行输入数字的方法
2015/04/29 Python
Python实现截屏的函数
2015/07/25 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
Python3 log10()函数简单用法
2019/02/19 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
构建高效的python requests长连接池详解
2020/05/02 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
小学班级管理心得体会
2016/01/07 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL