背景
在vue项目过程中,后台将权限数据一起放在token 中,导致token 过大,后台将请求头部的最大值设置为40M , 在axios请求过程中,还是报:
431(Request Header Fields Too Large)错误
运行环境:vue-cli 4.x , node v14+
原因:
虽然,后台已经设置了请求头部的最大值。
但是,我们在用vue-cli 脚手架开发过程中,是使用脚手架自带的服务,去启动的项目.
所以,需要给脚手架启的服务,设置请求头部的最大值。
注:打包后,页面为静态页面,需要再给运行此页面的服务器,重新设置请求头部的最大值。
解决方案:
网上找了很多方法,修改都无效.
最后参考下面的链接,修改
node_modules/.bin/webpack-dev-server.cmd
文件的方法,还是无效。
参考:
https://blog.csdn.net/qq_38652871/article/details/106101750
最终,经过测试,以同样的方法,修改下面的文件
node_modules/.bin/vue-cli-service.cmd ,
再ctrl + c , 结束 ,在npm run serve 运行成功。
特此记录,有需要的朋友,拿走不谢。
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
主要改动,在下面的语句中,加了 "--max-http-header-size=1000000",即可:
"%_prog%" "--max-http-header-size=1000000" "%dp0%\..\@vue\cli-service\bin\vue-cli-service.js" %*