项目中遇到一个问题,有一个导出功能,向后台请求是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对象向...
最终的解决方案是将请求方法从GET改为POST。这样做可以避免请求头和请求体大小的限制,因为POST方法通过请求体传输数据,而不是通过URL。示例代码展示了如何使用`$.redirect`函数和`$http`服务进行POST请求。在POST...
可选参数`forceGet`如果设置为`true`,则强制使用GET请求重新加载,即使原始请求是POST。 4. **location.hash**:这个属性和方法与URL中的片段标识符(#后的部分)有关,可以读取或设置URL的片段部分。例如,`...
此外,对于需要携带多个参数的复杂场景,还可以考虑使用 POST 请求或者 JavaScript AJAX 技术等其他方式来优化参数传递过程。总之,灵活运用各种技术手段可以有效提高 Web 应用的性能和易用性。
首先,通过window.location.href或者document.location.href进行参数传递是一种非常常见的方式。这种方式通过修改URL来传递参数,并且可以通过锚点指定页面中的某个位置。例如,可以这样传递数据: ``` window....
在给定的代码片段中,`functionlistQuery()` 和 `functionpageQuery(pageNo)` 这两个函数展示了如何在JavaScript中通过修改`window.location.href`属性来构建一个包含多个查询参数的URL。这里的关键在于使用了字符串...
- **`bForceGet` 参数**:当设置为 `true` 时,无论页面原来是通过 GET 还是 POST 请求加载的,都会强制使用 GET 方式重新加载。这有助于避免“网页已到期”的提示,尤其是在页面使用了 POST 方法的情况下。 ```...
window.location.href = url; // 重定向到新的URL ``` 然后在服务器端,你可以这样解码: ```java String decodedMsg = new String(request.getParameter("msg").getBytes("ISO-8859-1"), "UTF-8"); ``` 这样就...
window.location.href = "newUrl"; ``` 20. **表单数量:** ```javascript var formCount = document.forms.length; ``` 21. **文档关闭:** ```javascript document.close(); ``` 22. **变量赋值:** ...
2. HTML的`<form>`标签:利用表单提交可以实现页面跳转,通过`action`属性设置处理表单的服务器端脚本,`method`属性(默认GET,也可设置为POST)决定数据提交方式。例如: ```html <form action="process.jsp" ...
使用window.location.href可以改变当前页面的地址,并且将数据作为查询参数附加在URL后。接收页面可以通过解析window.location对象来获取这些参数。具体操作如下: ```javascript // 发送数据页面 window.location....
- POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。 - GET:请求获取由请求URI所标识的资源。 #### 三、示例代码解析 **1. 创建 XMLHttpRequest 对象:** ```...
- **说明**:这个表单在提交时会将数据发送到`/ggsh/member/member_update`路径,并采用POST请求方式。 - **应用场景**:适用于需要用户填写并提交数据的场景,如用户注册、登录、资料修改等。 综上所述,链接、...
在超链接或表单提交中,我们可以把参数附加到URL后面,例如`<a href="child.html?name=value">跳转</a>`。在目标页面(child.html)中,可以通过`window.location.search`获取这些参数。 2. **Cookie传递**:Cookie也...
- 表单数据通过POST请求发送到服务器端的JSP页面进行验证。 2. **服务器端验证逻辑**: - 在JSP页面中,我们使用Java代码块对用户名和密码进行验证。 - 如果验证通过,则使用`response.sendRedirect()`方法将...
示例代码中的函数Go()展示了如何使用JavaScript中的window.location.href属性来改变当前页面的URL,并传递参数id和name: ``` function Go(){ window.location.href="localhost:21811/Handler1.ashx?id=1&name=...
window.location.href = 'url?str=' + str; } ``` 另一种情况是,如果JS和PHP混合编写,由于PHP先执行,JS后执行,尝试直接在PHP中使用JS变量会导致错误。此时,可以将JS变量值通过AJAX发送到服务器,或者在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(...
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)机制是一种常见的解决方案。 **同步...