我需要增加网站上某些 API 调用的最大 Http 标头大小。当我运行有问题的函数时,出现此错误:
Server responded with status code 431. See https://vitejs.dev/guide/troubleshooting.html#_431-request-header-fields-too-large.
但是,如果我只是减少输入的长度,它就可以正常工作。 这不是cookie问题,我只是发回一个非常大的字符串(想想一篇很长的文章),但是当它达到一定大小时,它不再允许用户提交它。所以我需要使用终端提供的链接中列出的选项(https://vitejs.dev/guide/troubleshooting.html#_431-request-header-fields-too-large)来增加 max-http-标头大小。但是,我不知道在哪里可以做到这一点。
在 package.json 中,有一个脚本部分包含以下内容:
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
启动脚本是“npm run dev”。所以我尝试简单地修改“dev”启动脚本:
"scripts": {
"dev": "vite NODE_OPTIONS=--max_http_header_size=128000",
"build": "vite build",
"lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
这行不通,而且网站根本就行不通。所以我尝试修改启动脚本:
npm run dev
致:
npu NODE_OPTIONS=--max_http_header_size=128000 run dev
但这也不起作用。我只需要知道如何在使用 vite 时设置 max_http_header_size 的 NODE_OPTION ,因为“vite”替换“node”作为要运行的二进制文件。对于常规的 React-JS 网站,启动脚本是“node”,您可以简单地将 NODE_OPTIONS 放在后面。但由于我们使用的是 Vite,启动脚本不是“node”,在“vite”后面添加 NODE_OPTIONS 不起作用。
NODE_OPTIONS
是环境变量,它的目的是注入node
选项。对于跨平台项目,可以使用cross-env
依赖来设置:
cross-env NODE_OPTIONS=--max_http_header_size=128000 vite
或者,也可以使用代表
vite
的命令:
node --max_http_header_size=128000 node_modules/vite/bin/vite.js