`

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

阅读更多
项目中遇到一个问题,有一个导出功能,向后台请求是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.付出努力,付出不亚于任何人的努力

分享到:
评论

相关推荐

    网页间参数的传递

    - JavaScript可以在客户端动态修改页面内容,通过`window.location.href`或`location.replace()`改变URL,实现参数传递。 - AJAX(异步JavaScript和XML)允许在不刷新整个页面的情况下,通过XMLHttpRequest对象向...

    在Js页面通过POST传递参数跳转到新页面详解

    最终的解决方案是将请求方法从GET改为POST。这样做可以避免请求头和请求体大小的限制,因为POST方法通过请求体传输数据,而不是通过URL。示例代码展示了如何使用`$.redirect`函数和`$http`服务进行POST请求。在POST...

    JavaScript Window Location

    可选参数`forceGet`如果设置为`true`,则强制使用GET请求重新加载,即使原始请求是POST。 4. **location.hash**:这个属性和方法与URL中的片段标识符(#后的部分)有关,可以读取或设置URL的片段部分。例如,`...

    页面之间传递参数

    此外,对于需要携带多个参数的复杂场景,还可以考虑使用 POST 请求或者 JavaScript AJAX 技术等其他方式来优化参数传递过程。总之,灵活运用各种技术手段可以有效提高 Web 应用的性能和易用性。

    JS中传递参数的几种不同方法比较

    首先,通过window.location.href或者document.location.href进行参数传递是一种非常常见的方式。这种方式通过修改URL来传递参数,并且可以通过锚点指定页面中的某个位置。例如,可以这样传递数据: ``` window....

    Javascript传递参数到action类,多个字符传递

    在给定的代码片段中,`functionlistQuery()` 和 `functionpageQuery(pageNo)` 这两个函数展示了如何在JavaScript中通过修改`window.location.href`属性来构建一个包含多个查询参数的URL。这里的关键在于使用了字符串...

    js刷新当前页面

    - **`bForceGet` 参数**:当设置为 `true` 时,无论页面原来是通过 GET 还是 POST 请求加载的,都会强制使用 GET 方式重新加载。这有助于避免“网页已到期”的提示,尤其是在页面使用了 POST 方法的情况下。 ```...

    jspurl中中文参数的乱码解决.docx

    window.location.href = url; // 重定向到新的URL ``` 然后在服务器端,你可以这样解码: ```java String decodedMsg = new String(request.getParameter("msg").getBytes("ISO-8859-1"), "UTF-8"); ``` 这样就...

    jquery刷新页面和JS常用的函数

    window.location.href = "newUrl"; ``` 20. **表单数量:** ```javascript var formCount = document.forms.length; ``` 21. **文档关闭:** ```javascript document.close(); ``` 22. **变量赋值:** ...

    JSP和HTML跳转.zip_html挑转jsp_jsp和HEML跳转_jsp和HTML跳转

    2. HTML的`<form>`标签:利用表单提交可以实现页面跳转,通过`action`属性设置处理表单的服务器端脚本,`method`属性(默认GET,也可设置为POST)决定数据提交方式。例如: ```html <form action="process.jsp" ...

    用js通过url传参把数据从一个页面传到另一个页面

    使用window.location.href可以改变当前页面的地址,并且将数据作为查询参数附加在URL后。接收页面可以通过解析window.location对象来获取这些参数。具体操作如下: ```javascript // 发送数据页面 window.location....

    ajax实现无刷新

    - POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。 - GET:请求获取由请求URI所标识的资源。 #### 三、示例代码解析 **1. 创建 XMLHttpRequest 对象:** ```...

    链接、页面跳转、隐藏、表单提交

    - **说明**:这个表单在提交时会将数据发送到`/ggsh/member/member_update`路径,并采用POST请求方式。 - **应用场景**:适用于需要用户填写并提交数据的场景,如用户注册、登录、资料修改等。 综上所述,链接、...

    ajax\HTML 页面与页面之间传值

    在超链接或表单提交中,我们可以把参数附加到URL后面,例如`<a href="child.html?name=value">跳转</a>`。在目标页面(child.html)中,可以通过`window.location.search`获取这些参数。 2. **Cookie传递**:Cookie也...

    jsp_html_web_实现页面跳转

    - 表单数据通过POST请求发送到服务器端的JSP页面进行验证。 2. **服务器端验证逻辑**: - 在JSP页面中,我们使用Java代码块对用户名和密码进行验证。 - 如果验证通过,则使用`response.sendRedirect()`方法将...

    四种参数传递的形式——URL,超链接,js,form表单

    示例代码中的函数Go()展示了如何使用JavaScript中的window.location.href属性来改变当前页面的URL,并传递参数id和name: ``` function Go(){ window.location.href="localhost:21811/Handler1.ashx?id=1&name=...

    js变量值传到php过程详解 将php解析成数据

    window.location.href = 'url?str=' + str; } ``` 另一种情况是,如果JS和PHP混合编写,由于PHP先执行,JS后执行,尝试直接在PHP中使用JS变量会导致错误。此时,可以将JS变量值通过AJAX发送到服务器,或者在JS执行...

    jquery.form.js异步提交表单详解

    window.location.href = "/ImportAndCheck/ImportCompany?status=0"; }, 1000); } else { layer.msg(data.msg, {time: 1000}); $(obj).val("保存").attr("disabled", false); } } catch (err) { layer.msg(...

    解决ajax乱码和页面传值问题

    window.location.href += "?name=" + encodeURIComponent(name); // 解析参数 let params = new URLSearchParams(window.location.search); let name = params.get("name"); ``` 2. Cookie:适合存储较小的数据,...

    防止页面的重复提交和刷新

    - 或者使用`location.replace(this.href)`来替换当前的历史记录。 ##### 2. 服务器端处理 服务器端的处理更为可靠,因为客户端的代码容易被篡改或绕过。使用同步令牌(Token)机制是一种常见的解决方案。 **同步...

Global site tag (gtag.js) - Google Analytics