千家信息网

jQuery发请求传输中文参数乱码怎么解决

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本文小编为大家详细介绍"jQuery发请求传输中文参数乱码怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"jQuery发请求传输中文参数乱码怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路
千家信息网最后更新 2024年12月13日jQuery发请求传输中文参数乱码怎么解决

本文小编为大家详细介绍"jQuery发请求传输中文参数乱码怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"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 += "

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

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

读到这里,这篇"jQuery发请求传输中文参数乱码怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0