【求助】请求参数过大(过长)导致页面及浏览器卡死?

如题,在做的项目是一个彩票网站,用户有可能会一次性投注上万个号码,这上万个号码会作为参数传递到后台,但现在如果一次性投注上万个号码会出现页面乃至整个浏览器卡死的现象,打开浏览器控制台发现以下错误:

2222.png

以下是投注上万个号码的部分参数截图:

TIM截图20170908125224.png

另外要说明的是请求地址是正确的,但请求发送后服务器并没有接收到该请求,页面及浏览器直接卡死。ps: 当投注数量在几百注的时候是可以正常投注的。

请问是什么原因导致的以及有什么可用的解决方案呢?

脑壳大。。

@JFinal



评论区

JFinal

2017-09-08 14:35

用浏览器的开发者工具看一下数据到底有多大,上万的彩标投注在数据量上应该是不算大的,找到瓶颈之处,就容易解决了

在后端设置一个断点,看哪一步走得慢,很快就知道原因了

arboret

2017-09-08 14:49

换了个浏览器进行操作,然后打开控制台发现报了413(FULL HEAD)的错误,所以是head被占满了吗, 这个应该怎么处理呢@JFinal

arboret

2017-09-08 14:51

@JFinal 数据只有45B

JFinal

2017-09-08 15:08

@arboret 参数放 body ,用 post 请求

arboret

2017-09-08 15:19

$.ajax({
url: aokai + "/order/confirmBet?sign=" + sign,
method: "POST",
data: {"jsonPara": JSON.stringify(betParaArray)},
success: function(data){

if(data.status == 0){$("#failAlert .pull-left p:eq(0)").text(data.msg);$("#failAlert").fadeIn(200).delay(3000).fadeOut(200);return;}

$("#betting-list li").remove();
$("#sumOrder").text("0");
$("#fromBuyNumberSumCount").text("0");
$("#fromBuyPriceSumTotal").text("0");

$("#successAlert .pull-left p:eq(0)").text(data.msg);
$("#successAlert").fadeIn(200).delay(3000).fadeOut(200);


loadTopThreeOrders(); //加载前三条最新的订单记录

refreshUserinfo(); //刷新用户余额信息
}
}); @JFinal 我刚刚看控制台突然发现发送过去的请求是GET,可是我的method明明是POST啊,怎么会这样啊

JFinal

2017-09-08 15:21

@arboret js 学艺不精,再多看看 jquery 基础,搞成真正的 post 请求就不会有问题

arboret

2017-09-08 15:26

@JFinal 搞错参数了。。应该是type。。唉

热门反馈

扫码入社