Клиент Apollo отправляет ОПЦИИ вместо метода GET HTTP - PullRequest
0 голосов
/ 26 октября 2018

У меня проблемы с пониманием клиентской библиотеки Apollo, так как она не работает так, как задумано.Вместо отправки HTTP-метода GET он отправляет HTTP-метод OPTIONS, хотя я использовал GET только при получении данных изСервер GraphQL.

const client = new ApolloClient({
    link: ApolloLink.from([
        new MeteorAccountsLink(),
        new HttpLink({
            uri: 'https://selo-comments.herokuapp.com/graphql',
            useGETForQueries: true
        })
    ]),
    cache: new InMemoryCache()
});

Журнал консоли из браузера: OPTIONS https://selo-comments.herokuapp.com/graphql?query=%7B%0A%20%20comments(id%3A%20%22TFpQmhrDxQqHk2ryy%22)%20%7B%0A%20%20%20%20articleID%0A%20%20%20%20content%0A%20%20%20%20userId%0A%20%20%20%20createdAt%0A%20%20%20%20commentID%0A%20%20%20%20votes%0A%20%20%20%20blockedUsers%0A%20%20%20%20__typename%0A%20%20%7D%0A%7D%0A&variables=%7B%7D 405 (Method Not Allowed)

Это, очевидно, означает, что метод HTTP неверен, даже если в URL-адресе содержится параметр запроса.Если вы запросите этот URL с помощью Postman или просто перейдете по URL с помощью адресной строки браузера, вы получите данные GraphQL.Я должен использовать https://cors-anywhere.herokuapp.com/, чтобы успешно выполнить запрос.

Что я делаю не так?

1 Ответ

0 голосов
/ 26 октября 2018

Запрос опций, вероятно, является предполетным запросом для CORS .

Предварительный запрос CORS - это запрос CORS, который проверяет, понятен ли протокол CORS. Это запрос OPTIONS, использующий три заголовка HTTP-запроса: Access-Control-Request-Method, Access-Control-Request-Headers и заголовок Origin.

Вероятно, вам нужно настроить сервер так, чтобы он разрешал вызовы из разных стран.

Может быть, вы можете найти вдохновение здесь, чтобы начать. Разрешить CORS REST-запрос к приложению Express / Node.js на Heroku

...