ReactJS - NodeJS - Проблема с подключением к Graphql на AWS Lambda

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

Я пытался вызвать это из своего кода реакции, но получаю следующий ответ об ошибке

{"message":"Missing Authentication Token"}

И следующее предупреждение консоли

Failed to load https://z8zch5bp3m.execute-api.us-east-1.amazonaws.com/test: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 403. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Я включил cors в шлюзе API, но по-прежнему получаю эту ошибку.

Мой простой код реакции выглядит следующим образом

import React, { Component } from 'react';
import { gql } from 'apollo-boost';
import { Query } from 'react-apollo';

const ADD_NUMBERS = gql`
  query {
      addNumbers(number1:1, number2:55) {
        add
      }    
  }
`


const App = () => (
  <Query query = {ADD_NUMBERS}>
    {({ loading, error, data }) => {
      if (loading) return <div>Loading...</div>;
      if (error) return <div>Error :(</div>;

      return (
        <div>Data: {data}</div>
      )
    }}
  </Query>
)

export default App;

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

Пожалуйста, дайте мне знать, если мне нужно что-то сделать, чтобы этот лямбда-вызов заработал.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
215
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Взгляд в ваш код мне мало что сказал. Я бы посоветовал вам ознакомиться с этими темами:

  1. Отсутствующий токен аутентификации также возвращается, когда вы выполняете HTTP-вызов с неправильным методом (скажем, вы хотите выполнить POST, но вы PUT);
  2. Загляните в Интеграция лямбда-прокси. При использовании интеграции с лямбда-прокси вы можете указать заголовки в своем ответе. Там вы можете убедиться, что разрешено совместное использование ресурсов между разными источниками.

Надеюсь это поможет.

Спасибо за отзыв @Bilger_Yahov. Это на вызове опционов, где он терпит неудачу. Я видел статью, в которой упоминалось, как настроить вызов параметров так, чтобы он указывал на макет, чтобы он прошел - я попробовал это без всякой радости. У меня включен прокси, но он ничего не делает

Damien 01.05.2018 14:56

Было бы интересно посмотреть здесь: cloudacademy.com/blog/…

Bilger Yahov 01.05.2018 15:10

Спасибо @Bilger_Yahov - пройду через это, чтобы узнать, поможет ли это

Damien 01.05.2018 15:25

На самом деле - я следовал этому руководству, чтобы создать конечную точку graphql в Lambda. То, что они описали, работает, но теперь корки между моим приложением и шлюзом API

Damien 01.05.2018 15:28

Получил эту работу, воссоздав конечные точки моего шлюза api с включенным cors с самого начала, и он работал, как ожидалось

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