html页面中文传参乱码问题,jquery发请求传输中文传参乱码问题怎么解决?

jquery发请求传输中文传参乱码问题怎么解决?下面本篇文章给大家介绍一下jQuery发请求传输中文参数乱码问题的解决方案。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

5e6877281f297685.jpg

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

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

菜单如下:

1583904321172349.png

代码如下: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 += "

if (department && list[i] == department) {

departmentSelector += "selected='selected'";

}

departmentSelector += ">" + list[i] + "

";

}

$("#accountDepartmentAdd").html(departmentSelector);

});

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

1583904366952736.jpg

可以看到,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 += "

if (department && list[i] == department) {

departmentSelector += "selected='selected'";

}

departmentSelector += ">" + list[i] + "

";

}

$("#accountDepartmentAdd").html(departmentSelector);

}

});

更多前端开发知识,请查阅 HTML中文网 !!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值