У меня очень простой nodejs сервер, но использование пакета 'cors', похоже, по какой-то причине не распознает источник запроса.
Вот моя nodejs конфигурация сервера:
const cors = require('cors');
const express = require('express');
const CORS_WHITELIST = [ 'http://localhost:5000' ];
const corsOptions = {
origin: (origin, callback) => {
console.log(origin) // ----> this is always 'undefined'
if (CORS_WHITELIST.indexOf(origin) !== -1){
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
}
};
const configureServer = app => {
app.use(cors(corsOptions));
};
module.exports = configureServer;
Вот мой начальный файл сервера:
const express = require('express');
const SERVER_CONFIGS = require('./constants/server');
const configureServer = require('./server');
const configureRoutes = require('./routes');
const app = express();
configureServer(app);
configureRoutes(app);
app.listen(SERVER_CONFIGS.PORT, error => {
if (error) throw error;
console.log('Server running on port: ' + SERVER_CONFIGS.PORT);
});
Я запускаю этот сервер на localhost, но источник в обратном вызове cors всегда 'undefined'. Например, когда я открываю http://localhost: 5000 в браузере или выполняю вызов curl.
Как использовать cors, чтобы он не блокировал запрос на localhost?