在Js页面通过POST传递参数跳转到新页面详解
发布时间 - 2026-01-11 02:57:42 点击率:次场景

最近在工作中遇到一个需求,有个页面 a.vm,对 ajax 请求的结果进行判断后,获取结果里面的数据传递给一个 URL(b.htm),跳转到新的页面 b.htm。
遇到的问题
因为一开始是 GET 请求,所以当传递的数据过大的时候,会报错 nginx 414 request-uri too long
客户端请求头缓冲区大小,如果请求头总长度大于小于128k,则使用此缓冲区
client_header_buffer_size 128k;
请求头总长度大于128k时使用 large_client_header_buffers 设置的缓存区
large_client_header_buffers 指令参数4为个数,128k为大小,默认是8k。申请4个128k。
large_client_header_buffers 4 128k;
当http 的URI太长或者request header过大时会报414 Request URI too large或400 bad request错误
造成这样的原因
cookie中写入的值太大造成的,因为header中的其他参数的size一般比较固定,只有cookie可能被写入较大的数据
请求参数太长,比如发布一个文章正文,用urlencode后,使用get方式传到后台
本次的故障原因是由问题 2 引起的。即当请求头过大时,超过 large_client_header_buffer 时,nginx可能返回 Request URI too large (414) 或者 Bad-request(400) 错误。
当Request line的长度大于large_client_header_buffer的一个buffer(128k)时,nginx会返回"Request URI too large" (414)错误,对应上面的场景2。
请求头中最长的一行也要小于large_client_header_buffer,当不是Request line的最长行大于一个buffer(128k)时,会返回"Bad-request"(400)错误,对应上面的场景1。
临时解决办法
修改 nginx 参数
主要是调大以下参数值:
client_header_buffer_size 512k; large_client_header_buffers 4 512k;
但是调大这个值会出现一个问题,当我的服务器腾挪数据量比较大的时候,可能又要修改这样不是一个办法,最终的解决办法就是由 GET 请求方式修改为 POST 请求方式
最终解决办法
使用 jquery.redirect.js 框架来处理这样的情况,主要使用到的函数是 $.redirect
代码如下:
$http({
method: "POST",
dataType: "json",
contentType: 'application/json',
url: url,
data: data,
}).success(function (data) {
if (data.success) {
crId = data.data;
$scope.errMsg = "";
var url = "/xx.htm?id=" + id;
window.location.href = url
} else {
$scope.errMsg = data.message;
$scope.isDisabled = false;
$scope.errorCode = data.code;
$scope.trv.physics = data.data;
if(data.statusCode === -224){
var vms = data.data;
console.log("vms: " + vms);
$.redirect('/b.htm', {'vms': vms.toString(), 'resource': trv.resource, 'errMsg': $scope.errMsg});
}
}
}).error(function (data) {
alert(data);
$scope.isDisabled = false;
});
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# js跳转页面post传值
# js跳转页面post传参数
# js
# post
# 跳转页面
# js的函数的按值传递参数(实例讲解)
# jsp中四种传递参数的方法
# JS中传递参数的几种不同方法比较
# JS中append字符串包含onclick无效传递参数失败的解决方案
# 完美解决js传递参数中加号和&号自动改变的方法
# 浅谈在js传递参数中含加号(+)的处理方式
# JS控制静态页面传递参数并获取参数应用
# JavaScript 中传递参数的方式示例详解
# 过大
# 解决办法
# 是由
# 太长
# 总长度
# 有个
# 也要
# 太大
# 又要
# 一个问题
# 跳转
# 这篇文章
# 报错
# 谢谢大家
# 在工作中
# 到新
# 主要是
# 客户端
# 量比
# 有疑问
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速生成ASP一键建站模板并优化安全性?
如何在建站宝盒中设置产品搜索功能?
如何在香港免费服务器上快速搭建网站?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
jQuery中的100个技巧汇总
公司门户网站制作流程,华为官网怎么做?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何为不同团队 ID 动态生成多个“认领值班”按钮
PHP 500报错的快速解决方法
如何制作一个表白网站视频,关于勇敢表白的小标题?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何用美橙互联一键搭建多站合一网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
微信推文制作网站有哪些,怎么做微信推文,急?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
潮流网站制作头像软件下载,适合母子的网名有哪些?
高防服务器租用首荐平台,企业级优惠套餐快速部署
Laravel如何使用Collections进行数据处理?(实用方法示例)
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
如何确保FTP站点访问权限与数据传输安全?
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel distinct去重查询_Laravel Eloquent去重方法
JavaScript实现Fly Bird小游戏
如何用好域名打造高点击率的自主建站?
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
制作公司内部网站有哪些,内网如何建网站?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
如何快速登录WAP自助建站平台?
独立制作一个网站多少钱,建立网站需要花多少钱?
网站建设要注意的标准 促进网站用户好感度!
怎样使用JSON进行数据交换_它有什么限制
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
微信小程序 require机制详解及实例代码
如何在 React 中条件性地遍历数组并渲染元素
微信小程序 五星评分(包括半颗星评分)实例代码
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
网站页面设计需要考虑到这些问题
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
新三国志曹操传主线渭水交兵攻略
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel观察者模式如何使用_Laravel Model Observer配置
如何基于PHP生成高效IDC网络公司建站源码?

