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 DataTable实现前后台动态分页
Jun 17 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
Jquery Datatables的使用详解
Jan 30 jQuery
jquery实现异步文件上传ajaxfileupload.js
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
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
php use和include区别总结
2019/10/13 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
顺丰快递Java软件工程师面试题
2015/07/31 面试题
网页美工求职信
2014/02/15 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
工作证明英文模板
2014/10/21 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
高中教师个人工作总结
2015/02/10 职场文书
工作简报范文
2015/07/21 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书