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解析获取JSON数据
Apr 08 jQuery
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
jquery tmpl模板(实例讲解)
Sep 02 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
jQuery实现滚动效果
Nov 17 jQuery
jquery中有哪些api jQuery主要API
Nov 20 jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
深入分析jQuery.one() 函数
Jun 03 jQuery
jQuery+ajax实现文件上传功能
Dec 22 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
PHP include_path设置技巧分享
2011/07/03 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
php的一个简单加密解密代码
2014/01/14 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
新闻记者个人求职的自我评价
2013/11/28 职场文书
高级方案规划工程师岗位职责
2013/11/29 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
党风廉政承诺书
2014/03/27 职场文书
银行金融服务方案
2014/06/11 职场文书
部门活动策划方案
2014/08/16 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
Python图像处理之图像拼接
2021/04/28 Python