[Решено] Несколько способов решения последней проблемы с ошибкой доступа к доменному имени сервера «Неверный заголовок хоста» (неверный заголовок хоста).
[Решено] Несколько способов решения последней проблемы с ошибкой доступа к доменному имени сервера «Неверный заголовок хоста» (неверный заголовок хоста).
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Invalid Host headerВ Интернете есть множество статей, предлагающих решения этой ошибки.,Но многие из них бесполезны,Вот яма для братьев,Решение, представленное в этой статье, проверено и не вызывает проблем, братья могут с уверенностью извлечь из него уроки.

1. Феномен сообщения об ошибках

существоватьyarn serveПроект стартовал успешно,Но страница показываетInvalid Host header

Вставьте сюда описание изображения
Вставьте сюда описание изображения

2. Анализ причин ошибок

новая версияwebpack-dev-serverПо соображениям безопасности он будет проверен по умолчанию.hostname,Используется для предотвращения доступа с ненадежных хостов.DevServer,Когда браузер делает запрос,Он проверит заголовок хоста в запросе,нравитьсяhostname Если он не настроен, доступ будет прерван.

3. Среда проекта

Vue3:3.0.0 Npm:6.14.17 Node:16.13.0

4. Решение

1、allowedHosts

настраиватьallowedHosts,Этот вариантнастраиватьСписок хостов, которым разрешен доступ к серверу разработки。поставь этоустановлен на all Указывает, что любому хосту разрешен доступ к серверу разработки.。Эта опция связана с проверкой хоста,Но более точно контролирует, какие хосты могут получить доступ к серверу разработки.,Вместо полного отключения проверки хоста。ХОРОШОнастраиватьнесколько хостов。Подробности смотрите в официальной документации.Официальное представление разрешенных хостов

  • Установить список всех хостов
Язык кода:javascript
копировать
allowedHosts: "all"
  • Установить частичный список хостов
Язык кода:javascript
копировать
allowedHosts: ['xxx.com','xxx.com']

Конкретное решение заключается в следующем:

Язык кода:javascript
копировать
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false,
  devServer: {
    host: 'localhost', 
    port: 8089,
    historyApiFallback: true,
    allowedHosts: "all"
  }
})

2、disableHostCheck

Этот параметр вступает в силу, если версия vue-cli 2.x.,disableHostCheckпозволятьсуществовать Отключить хост на сервере разработкиисследовать。По умолчанию,Webpack DevServerПроверяет, соответствует ли запрошенный хост настроенному хосту,для дополнительной безопасности. Если хост явно не указан в конфигурации,Webpack DevServer разрешит доступ только к локальному хосту.,чтобы предотвратить потенциальныйсуществоватьриски безопасности。добавив disableHostCheck установлен на true, чтобы разрешить запросы от других хостовпросить,Но это может увеличить потенциальные риски безопасности.,Так что используйте с осторожностью.

Язык кода:javascript
копировать
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false,
  disableHostCheck:true,
  devServer: {
    host: 'localhost', 
    port: 8089
  }
})

Если версия vue-cli — 3.x, будет сообщено о следующей ошибке:

Язык кода:javascript
копировать
ValidationError: Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.
         - options has an unknown property 'disableHostCheck'. These properties are valid:
           object { allowedHosts?, bonjour?, client?, compress?, devMiddleware?, headers?, historyApiFallback?, host?, hot?, http2?, https?, ipc?, liveReload?, magicHtml?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, port?, proxy?, server?, setupExitSignals?, setupMiddlewares?, static?, watchFiles?, webSocketServer? }
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Поэтому вам нужно ясно видеть свою собственную версию.

5. Расширение

1、historyApiFallback

В приведенном выше кодеhistoryApiFallbackиспользуется длясуществоватьиспользовать Vue Routerили аналогичная библиотека внешней маршрутизации,Обработка проблемы обновления страницы при переключении маршрутизации。Когда вы используете кнопки браузера «Вперед» и «Назад» или вводите вручнуюURLчас,Vue RouterИли другие библиотеки маршрутизации будутсуществовать Фронтальная коммутация маршрутизации,Но если нет подходящей конфигурации,Это приводит к ошибке 404 при обновлении страницы.

Язык кода:javascript
копировать
historyApiFallback:true

2、transpileDependencies

transpileDependenciesДля настройки необходимо пройти Babel Переведенные зависимые модули。По умолчанию(false),Vue CLIи Babel Будет перенесен только код приложения.,без перевода зависимых модулей(node_modules)вводить код。Но некоторые зависимые модули могут содержать ES6+ синтаксис, если вам нужно перевести эти зависимые модули, вы можете использовать transpileDependencies Настроить。ноtranspileDependencies: true Только трехсторонние зависимости будут просматриваться и компилироваться вширь, а зависимости зависимостей обрабатываться не будут.

Язык кода:javascript
копировать
transpileDependencies:true
Язык кода:javascript
копировать
transpileDependities:['xxxx']//Укажите конкретные зависимости для перевода

3、lintOnSave

lintOnSave Используется для управления необходимостью выполнения при разработке и сохранении файлов. ESLintСтатическая проверка кода。ESLint Может помочь вам обнаружить потенциальные проблемы с кодированием и нарушения стиля.

Если lintOnSave установлен на true,затем при сохранении файла,Vue CLIбудет запускаться автоматически ESLintисследовать,Если обнаружены проблемы,Во время разработки будут сообщаться об ошибках и предупреждениях.

Если lintOnSaveустановлен на false,тогда автомат ESLintисследовать,Вам необходимо запустить проверку вручную.

Я участвую в третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 с эссе, получившими приз, и сформирую команду, которая разделит приз!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose