Включение фильтров cors на двух серверах - PullRequest
0 голосов
/ 04 мая 2018

У меня есть два сервера в приложении nodejs. Я использую два сервера http-server для статического html-файла (то есть index.html) и express для API узлов. Теперь я получаю ошибку фильтра CORS. даже если я включил фильтр Cors на обоих серверах.

Я пробовал эти комбинации. 1. Включите его на сервере Node с помощью промежуточного программного обеспечения. т.е. следующий код.

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  next();
});

и http-server с помощью следующей команды.

http-server --cors

Я все еще получаю следующую ошибку.

Error

Я предполагаю, что включение на обоих серверах не будет работать, поскольку оба ресурса будут иметь разные значения CORS. Но как я могу решить это? Любая помощь будет оценена.

Глядя на вкладку сети в инструментах разработчика, я вижу следующее для запроса API. Response to API

Обновление 1-го пакета cors

Я пробовал следующие примеры кода при каждом перезапуске сервера.

app.use(cors());

и этот тоже.

app.use(cors());
app.options('*', cors());

и этот с определенной конфигурацией.

app.use(cors());

var whitelist = ['http://localhost:8080']
var corsOptions = {
  origin: function (origin, callback) {
    if (whitelist.indexOf(origin) !== -1) {
      callback(null, true)
    } else {
      callback(new Error('Not allowed by CORS'))
    }
  }
}
app.options('*', cors(corsOptions));

Каждый раз, когда я получаю один и тот же ответ в консоли вывода.

Это маршруты.

module.exports = function(app){

  app.get('/get_tuna/:id', function(req, res){
    tuna.get_tuna(req, res);
  });
  app.get('/add_tuna/:tuna', function(req, res){
    tuna.add_tuna(req, res);
  });
  app.get('/get_all_tuna', function(req, res){
    console.log('###### ++++++++++ 2 - This is called first');
    tuna.get_all_tuna(req, res);
  });
  app.get('/change_holder/:holder', function(req, res){
    tuna.change_holder(req, res);
  });
  app.get('/api/get_available_vault_balance/', function(req, res){
    /// --------- 3
    console.log('VAULT >> API is called >>> :) ');
    vaultbackendservice.get_available_vault_balance(req, res);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...