2014-11-23 4 views
0

Я развернул Express-сервер для Elastic Beanstalk, но я не могу получить его для доступа к внешним доменам! Я чувствую, что я пробовал несколько вещей, которые должны были сработать. Пожалуйста, взгляните и сообщите мне, есть ли что-то, что я пропустил. Заранее спасибо!Как создать заголовок «Access-Control-Allow-Origin» на сервере Express, развернутом на Elastic Beanstalk?

  1. Добавление заголовков в экспресс-конфигурации

    вар приложение = экспресс();

    app.use (функция (REQ, разреш, следующая) {

    // Website you wish to allow to connect 
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8100'); 
    
    // Request methods you wish to allow 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
    
    // Request headers you wish to allow 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
    
    // Set to true if you need the website to include cookies in the requests sent 
    // to the API (e.g. in case you use sessions) 
    res.setHeader('Access-Control-Allow-Credentials', true); 
    
    // Pass to next layer of middleware 
    next(); 
    

    });

  2. Используйте модуль НПМ CORS

    вар приложение = экспресс();

    приложение.use (cors());

  3. Изменен Корс конфигурации на S3 <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>

ответ

4

Фигурные его. И это глупо.

В моем коде была ошибка, которую я не мог видеть, потому что это было на EB. И я не проверял журналы на AWS. Наконец, я развернул сервер локально и запустил как мое приложение, так и сервер на двух разных портах. Затем я увидел ошибку в консоли.

По какой-то причине из-за ошибки в моем коде, я получал ошибку Access Control Allow Origin. Не знаю, в чем причина. Но если вы получаете его, и вы думаете, что позаботились обо всех материалах CORS, тогда может быть ошибка в вашем коде, который вам не хватает.

Удачи вам!