Node.js
Node.js с CORS
Поиск…
Включить CORS в express.js
Поскольку node.js часто используется для создания API, правильная настройка CORS может быть спасателем жизни, если вы хотите иметь возможность запрашивать API из разных доменов.
В качестве примера мы настроим его для более широкой конфигурации (авторизуем все типы запросов из любого домена.
На сервере server.js после инициализации express:
// Create express server
const app = express();
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
// authorized headers for preflight requests
// https://developer.mozilla.org/en-US/docs/Glossary/preflight_request
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
app.options('*', (req, res) => {
// allowed XHR methods
res.header('Access-Control-Allow-Methods', 'GET, PATCH, PUT, POST, DELETE, OPTIONS');
res.send();
});
});
Обычно узел запускается за прокси на рабочих серверах. Поэтому обратный прокси-сервер (такой как Apache или Nginx) будет отвечать за конфигурацию CORS.
Чтобы удобно адаптировать этот сценарий, возможно только включить node.js CORS, когда он находится в разработке.
Это легко сделать, проверив NODE_ENV
:
const app = express();
if (process.env.NODE_ENV === 'development') {
// CORS settings
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow