美文网首页
ajax get提交中文乱码、服务器部署导出页面会跳转问题

ajax get提交中文乱码、服务器部署导出页面会跳转问题

作者: 小岛wink | 来源:发表于2020-06-09 11:26 被阅读0次

这几天做的项目遇到一个bug,功能是导出excel,用的get方法,测出了两个问题
1、传递参数为中文时乱码
2、本地正常,部署到服务器上后导出成功页面会跳转
乱码问题试了加密解密也没有效果,跳转问题记得以前貌似有人遇到过,暂时还没找到问题,就想改用post提交参数,并百度了下其他方法,试了下成功,以下为前端代码:

function postExcelFile(params, url) { //params是post请求需要的参数,url是请求url地址
        var form = document.createElement("form");
        form.style.display = 'none';
        form.action = url;
        form.method = "post";
        document.body.appendChild(form);

        for(var key in params){
            var input = document.createElement("input");
            input.type = "hidden";
            input.name = key;
            input.value = params[key];
            form.appendChild(input);
        }

        form.submit();
        form.remove();
    }

按钮点击事件:

function exportData(){
        var startInput = $("#startInput").val();
        var endInput = $("#endInput").val();
        var typeValue = $("#typeValue").val();
        var originName= $("#originName").val();
  
        //点击导出按钮导出excel表格:传递后台参数
        var params = {
            'type':typeValue,
            'startInput':startInput,
            'endInput':endInput,
            'originName':originName
        };
        postExcelFile(params, "${ctx}/hottopic/downInfo");
        $('#modalDialog').modal('hide');
    }

乱码问题;
后台参数需要转码:

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");

参考其他博客内容,也学会了这样写post方法,记录一下。

相关文章

网友评论

      本文标题:ajax get提交中文乱码、服务器部署导出页面会跳转问题

      本文链接:https://www.haomeiwen.com/subject/cjlstktx.html