NodeJs - Lambda - Включить Cors - PullRequest
0 голосов
/ 01 мая 2018

У меня есть лямбда-функция nodejs, развернутая на aws, которая предоставляет конечную точку лямбды через API-шлюз. Конечная точка здесь и позволяет вам получить доступ к конечной точке graphiql.

Когда я пытаюсь вызвать эту конечную точку из своего приложения реакции - я получаю ошибки cors

Failed to load https://3h5e2m2b1a.execute-api.us-east-1.amazonaws.com/test?: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

При проверке ответа от Lambda - он не содержит заголовка 'Access-Control-Allow-Origin'

Я добавил следующее в lambda.js, чтобы попытаться включить cors, но, похоже, он не работает.

    const awsServerlessExpress = require('aws-serverless-express');
const app = require('./src/app');
const cors = require('cors');
app.use(cors()); // enable `cors` to set HTTP response header: Access-Control-Allow-Origin: *
const server = awsServerlessExpress.createServer(app);

Код nodejs для моей лямбда-функции находится здесь

У кого-нибудь есть идеи о том, что мне нужно сделать, чтобы включить cors в моей функции nodejs? Я включил cors в шлюзе API

1 Ответ

0 голосов
/ 01 мая 2018

Я не знаю, как работает express-graphql, но если он ответит обратно без пересылки следующему промежуточному программному обеспечению, app.user(cors()) никогда не получит удар. Потому что вы делаете

var app = express();
app.use('/', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));
// then
app.user(cors())

Попробуйте вызвать cors, прежде чем использовать graphqlHTTP что-то вроде

var app = express();
app.use(cors());
app.use('/', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...