Как исправить CORS‑ошибки «Access-Control-Allow-Origin missing» (Plesk/LiteSpeed)
- 20.02.2026 00:58
-
- LiteSpeed
- Plesk
- устранение неполадок
- хостинг
Если в консоли браузера вы видите ошибки вроде:
Access to fetch at 'https://api.example.com' from origin 'https://example.com' has been blocked by CORS policyNo 'Access-Control-Allow-Origin' header is present
…это значит, что сервер не отправляет нужные CORS‑заголовки. Исправлять CORS нужно на сервере, который принимает запрос (обычно это API), а не на сайте, который обращается к API.
Шаг 1 – определите, какой URL блокируется
- Откройте Developer Tools → Console/Network и посмотрите точный URL запроса, который падает.
- Проверьте, где хостится этот URL: на GARMTECH (Plesk) или у стороннего провайдера. Если это сторонняя платформа – CORS нужно настраивать там.
Шаг 2 – решите, что именно разрешать (держите правила строгими)
Для безопасности разрешайте только те origin, которые реально нужны (например, https://example.com и https://www.example.com).
Не используйте *, если вы отправляете cookies/Authorization (credentials).
Шаг 3 – добавьте CORS‑заголовки на хостинге GARMTECH (Plesk / LiteSpeed)
На хостинге GARMTECH (LiteSpeed) поддерживаются стандартные правила Apache в .htaccess.
Вариант A – добавить заголовки в .htaccess (частый случай)
- В Plesk откройте Files для домена.
- Откройте директорию, где работает API (часто
httpdocsили подпапка). - Создайте или отредактируйте файл
.htaccess. - Добавьте (пример):
<IfModule mod_headers.c>
Header always set Access-Control-Allow-Origin "https://example.com"
Header always set Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
Header always set Access-Control-Allow-Headers "Content-Type, Authorization"
</IfModule>
Обработка preflight (OPTIONS)
Многие API требуют ответ на OPTIONS для preflight‑проверки. Если ваше приложение не обрабатывает OPTIONS, можно добавить простое правило:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=204,L]
Важно: некоторые фреймворки должны обрабатывать preflight внутри приложения. Если правило выше не помогает, настройте OPTIONS в коде API.
Шаг 4 – протестируйте
- Очистите кеш браузера или проверьте в режиме инкогнито.
- Убедитесь, что в ответе присутствует заголовок
Access-Control-Allow-Origin.
Типичные ошибки
- Добавление заголовков не на тот сервер (на сайт вместо API).
- Использование
*вместе сAccess-Control-Allow-Credentials: true(браузеры это блокируют). - Забыли добавить
OPTIONSв список разрешённых методов.