揭阳网站制作软件,上海高端it网站建设,张家界网页,库尔勒 网站建设场景最近在工作中遇到一个需求#xff0c;有个页面 a.vm#xff0c;对 ajax 请求的结果进行判断后#xff0c;获取结果里面的数据传递给一个 URL(b.htm)#xff0c;跳转到新的页面 b.htm。遇到的问题因为一开始是 GET 请求#xff0c;所以当传递的数据过大的时候#xff…场景最近在工作中遇到一个需求有个页面 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;});总结以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作能带来一定的帮助如果有疑问大家可以留言交流谢谢大家对脚本之家的支持。