欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

window.location.href提交参数过长改为post请求

程序员文章站 2024-01-02 09:39:52
...
项目中遇到一个问题,有一个导出功能,向后台请求是get形式的,如下所示:

    if (queryType != undefined && queryType == 'download') {
        window.location.href = webUrl + "/orderReceiveInfo/search.dhtml?jsonStr=" + jsonStr + "&v=" + Math.random();
        return;
    }
由于功能改造,发现jsonStr请求参数过长,这个get请求的瓶颈所在,需要改为post,到网上找了资料,发现改为post之后,是可以向后台提交了,但是会离开原来的页面,并且无法返回,后来又找了其他方法,又在同事的帮助下,解决了此问题,如下所示:
if (queryType != undefined && queryType == 'download') {
        postExcelFile(jsonStr, webUrl + "/orderReceiveInfo/search.dhtml?v=" + Math.random());
        return;
    }

其中queryType就是一个js参数值,jsonStr也是如此,postExcelFile方法如下:

function postExcelFile(params, url) {
    var form = document.createElement("form");
    form.style.display = 'none';
    form.action = url;
    form.method = "post";
    document.body.appendChild(form);

    var input = document.createElement("input");
    input.type = "hidden";
    input.name = "jsonStr";
    input.value = params;
    form.appendChild(input);

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

这样就解决了参数过长的问题,并且不会跳转到另一个页面上去,问题解决。

总结心得:
1.深入细致的思考,并持续不断的努力,尝试
2.付出努力,付出不亚于任何人的努力

上一篇:

下一篇: