Мне нужно увеличить максимальный размер заголовка Http для некоторых вызовов API на моем веб-сайте. Когда я запускаю рассматриваемую функцию, я получаю эту ошибку:
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
Но это тоже не сработало. Мне просто нужно знать, как установить NODE_OPTION для max_http_header_size при использовании vite, поскольку «vite» заменяет «node» в качестве двоичного файла для запуска. Для обычных веб-сайтов React-JS сценарием запуска является «узел», и после него вы можете просто указать NODE_OPTIONS. Но поскольку мы используем Vite, сценарий запуска не является «узлом», и добавление NODE_OPTIONS после «vite» не работает.
@Estus Flask Сработало отлично. Теперь я получаю ошибку 414 URI слишком долго вместо 431, но вы ТОЧНО ответили на то, что я искал. Если вы опубликуете это как ответ, я приму это. Спасибо!





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
Вместо этого используйте команду узла, которая на самом деле означает «vite», что-то вроде
node --max_http_header_size=128000 node_modules/vite/bin/vite.js