ReactJS - NodeJS - проблема с подключением к Graphql в AWS Lambda - PullRequest
0 голосов
/ 01 мая 2018

У меня есть лямбда-функция 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 для моей лямбда-функции находится здесь

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

Ответы [ 2 ]

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

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

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

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

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

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

...