JQuery中Ajax的Post提交中文乱码的解决方案

参考:https://blog.csdn.net/blueheart20/article/details/26370023

问题:

简化版:

post("/baoquan/rescueProgress.do", param);

完整版:

$.ajax({

            url: 'rescueProgress.do',

            data: param,

            dataType: 'json',

            type: 'post',

            success: function (data) {

                hideLoad();

                var code = data.code;

                if (code == "0") {

                    mui.alert(data.msg);

                }

                else if (code == "1") {

                    post("/baoquan/rescueProgressShow.do", param);

                }

            },

            error: function () {

                // do nothing

                hideLoad();

            }

        });

则存在问题,在后台输出的信息为乱码

1.  设置了  contentType: "text/plain; charset=utf-8",  问题依然存在(简化版无法实行)

2.  重新检查了ajax代码所在的jsp页面,皆为使用utf-8,但是问题依然存在

3.  在后台的java代码中,强制使用utf-8、gbk、gb2312的编码转换,   问题依然存在

经过分析,判断其可能与浏览器或者JQuery中的内容传输有关,目前也无法准确的确定。

解决的办法:

    前段:encodeURI($(dom).val(), "UTF-8");       使用encodeURI进行编码

   后端Java代码: 

      URLDecoder.decode(inputStr,"UTF-8"):   后端代码针对前段传递过来的字符串,进行解码。
总结:

      简化版本为了后端方便跳转,如果使用完成版本需要再次添加跳转按钮。使用了bladestone版主的方法解决了此问题。后续有时间研究一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值