API отдыха с LocomotiveJs с использованием CORS. Работает на локальной машине, но не на Amazon или Heroku

API отдыха с LocomotiveJs с использованием CORS. Работает на локальной машине, но не на Amazon или Heroku

Я сделал REST API, используя LocomotiveJs, и теперь я пытаюсь включить CORS на нем. Я добавил следующий код в мою среду "all" (config/environment /all.js).

this.use(function crossOrigin(req,res,next){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication");
    res.header("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS");

    return next();
});

Он работает на моем локальном компьютере, но когда я развернул его на Heroku или AWS, я получил сообщение об ошибке 404 Http, когда клиент отправил команду OPTIONS.

Чтобы изолировать проблему, я разработал простое приложение Express со следующим кодом:

var express = require('express');
var app = express();

app.all('*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication");
  next();
 });

app.get('/test', function(req, res){
    res.set('Content-Type', 'application/json');
    res.send({ 'Hello' : 'World' });
});

var port = process.env.PORT || 5000;

app.listen(port);
console.log('Listening on port ' + port);

И этот код работал при развертывании в Heroku!

Ребята, у вас есть мнение о том, почему он работал на моей локальной машине и не работал на серверах?

1 ответ

Решение

Я нашел решение:

Сейчас я использую это промежуточное ПО для подключения: https://github.com/troygoode/node-cors

Затем я просто изменил свой файл all.js, добавив следующую строку:

this.use(cors());

Я развернул его на Heroku и сейчас работает.

Другие вопросы по тегам