Вопрос проверяет понимание механизма CORS и его роли в веб-безопасности.
CORS (Cross-Origin Resource Sharing) — это механизм безопасности браузеров, который разрешает или запрещает запросы к ресурсам на другом домене. Он предотвращает межсайтовые запросы, которые могут быть опасными. Сервер должен отправлять специальные заголовки, чтобы разрешить кросс-доменные запросы.
CORS — это важный механизм веб-безопасности, который контролирует доступ к ресурсам между разными доменами.
Как работает CORS:
Браузер отправляет предварительный запрос (preflight) OPTIONS для проверки разрешений
Сервер отвечает с заголовками, указывающими разрешенные origins, методы и headers
Если запрос разрешен, браузер отправляет основной запрос
Основные заголовки CORS:
Access-Control-Allow-Origin: разрешенные домены
Access-Control-Allow-Methods: разрешенные HTTP-методы
Access-Control-Allow-Headers: разрешенные заголовки
Пример настройки в Express.js:
const express = require('express');
const cors = require('cors');
const app = express();
// Простая настройка
app.use(cors());
// Кастомная настройка
app.use(cors({
origin: 'https://example.com',
methods: ['GET', 'POST'],
allowedHeaders: ['Content-Type']
}));Когда возникает ошибка CORS:
При запросах между разными доменами
При использовании нестандартных заголовков
При запросах с credentials (куки, авторизация)