前端接口报错431解决办法

当后端返回的token导致前端接口请求出现431错误时,可以通过修改vue-cli-service或webpack-dev-server的配置文件,增加`--max-http-header-size`参数来扩大请求头大小限制,从而解决问题。此方法适用于不同版本的项目,但需根据启动项判断修改哪个文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因
这次的项目使用的是后端返回的token来进行接口请求登录验证,由于后端没有进行优化,当权限过多时造成了前端请求时报错431,这我就头大了,接下来都无法进行开发了。当然这是在开发环境下,部署之后使用nginx的话可以直接设置请求头的大小,那个就不说了。
后续方法
一开始在网上找了很多方法,如果使用的是vue-cli构建的项目,启动时使用的也是vue的vue-cli-service.js启动项目。只要在node_modules中找到.bin文件夹下的vue-cli-service.cmd文件,添加如下内容

"--max-http-header-size=1000000"

当然size的数值随你写,越大越好。
具体内容如下

@ECHO off
SETLOCAL
CALL :find_dp0

IF EXIST "%dp0%\node.exe" (
  SET "_prog=%dp0%\node.exe"
) ELSE (
  SET "_prog=node"
  SET PATHEXT=%PATHEXT:;.JS;=;%
)

"%_prog%" "--max-http-header-size=1000000" "%dp0%\..\@vue\cli-service\bin\vue-cli-service.js" %*
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b

此时重启项目就没有问题了,需要注意的是我是用的node版本是v14.17.6。
使用老版本webpack的项目
还有一个项目我是用的是"webpack-dev-server": “^2.9.1”。曾经我的node版本是12左右的,这时候在.bin/webpack-dev-server.cmd文件中插入"–max-http-header-size=1000000"并没有生效,反而在终端报错了,虽然不影响代码运行,但是431的问题任然没有解决。
然而就在今天,没错,就是今天2022年2月22号的后一天,我无聊试了下,成功了?就这么突然的成功了?

@ECHO off
SETLOCAL
CALL :find_dp0

IF EXIST "%dp0%\node.exe" (
  SET "_prog=%dp0%\node.exe"
) ELSE (
  SET "_prog=node"
  SET PATHEXT=%PATHEXT:;.JS;=;%
)

"%_prog%" "--max-http-header-size=1000000" "%dp0%\..\webpack-dev-server\bin\webpack-dev-server.js" %*
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b

齐活,这是本地开发时的问题,如果是部署后出现431,name就需要后端去配置了。
在这里插入图片描述
求大佬告诉我这是为啥,工作之余写的,没有太多时间去查找原因,如果有大佬知道求踢!!!!!!!!!

2022年的10月17日我可算是知道为啥有些项目可以,有些项目不可以了。
用上面的方法你可以把较老的项目配成功,一些较新的项目不成功是因为我们需要看你的package.json文件中启动项使用的到底是哪种方法,例如:

在这里插入图片描述
这里使用的是webpack的启动,所以我们需要用最上面的方法。如果是以下:
在这里插入图片描述
这里是vue-cli-service,所以我们同样的找到node_modules下面的.bin文件中的vue-cli-service.cmd文件,改写方法如出一辙,唯一不同的地方就在于改写的文件不同,还有一点要注意的是,不要把后面启动的代码复制错了,奉上改写的代码:

@ECHO off
SETLOCAL
CALL :find_dp0

IF EXIST "%dp0%\node.exe" (
  SET "_prog=%dp0%\node.exe"
) ELSE (
  SET "_prog=node"
  SET PATHEXT=%PATHEXT:;.JS;=;%
)
//下面这一句是改写的地方
"%_prog%" "--max-http-header-size=1000000" "%dp0%\..\@vue\cli-service\bin\vue-cli-service.js" %* 
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值