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) {

扫描二维码关注公众号,回复: 10821695 查看本文章

                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版主的方法解决了此问题。后续有时间研究一下。

发布了14 篇原创文章 · 获赞 2 · 访问量 2644

猜你喜欢

转载自blog.csdn.net/qq_33965352/article/details/105365396