CORS (Cross-Origin Resource Sharing) - это механизм, который позволяет браузеру веб-приложения запросить ресурсы с другого источника (домена), чем источник самого веб-приложения. CORS предотвращает возможные атаки на веб-приложения, когда из одного домена делаются запросы к другому домену без согласия владельца ресурса.
Когда браузер отправляет CORS-запрос, он добавляет в заголовки запроса "Origin", который содержит домен, с которого был отправлен запрос. Сервер, получивший запрос, должен проверить этот заголовок, чтобы определить, разрешим ли ему предоставить запрашиваемый ресурс для данного домена. Если сервер разрешает доступ, он возвращает в ответ специальные заголовки CORS, которые разрешают домену, с которого был отправлен запрос, получать этот ресурс.
Один из возможных значения заголовка Access-Control-Allow-Origin, возвращаемого сервером, — "strict-origin-when-cross-origin". Это значение разрешает запросы, на которые сервер-получатель может быть уверен в «строгом значении заголовка» для запросов, отправленных с одного источника, но запрещает запросы, отправленные с другого источника.
Если вы разрабатываете сервер на Node.js и хотите разрешить значение "strict-origin-when-cross-origin" для CORS, вам понадобится настроить соответствующие заголовки в ответе сервера.
Вот пример использования Express.js, чтобы добавить поддержку CORS и разрешить значение "strict-origin-when-cross-origin":
const express = require('express'); const app = express(); app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', 'strict-origin-when-cross-origin'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); next(); }); // Здесь остальной код вашего сервера Express app.listen(3000, () => { console.log('Сервер запущен на порту 3000'); });
В этом примере мы используем метод use
Express для добавления middleware. Middleware - это функция, которая выполняется перед обработкой каждого запроса.
В добавленной middleware мы устанавливаем необходимые заголовки CORS. Access-Control-Allow-Origin
устанавливает разрешенное значение, а Access-Control-Allow-Methods
и Access-Control-Allow-Headers
определяют разрешенные методы HTTP и заголовки соответственно.
Этот пример предполагает, что ваш сервер запущен на порту 3000. Вы также можете настроить другие параметры, такие как разрешенные домены (Access-Control-Allow-Origin
), разрешенные методы (Access-Control-Allow-Methods
), а также разрешенные заголовки (Access-Control-Allow-Headers
), в соответствии с вашими требованиями.