Клиент Apollo отправляет ОПЦИИ вместо метода GET HTTP

У меня проблемы с пониманием клиентской библиотеки Apollo, поскольку она не работает должным образом. Вместо отправки HTTP-метода GET он отправляет HTTP-метод OPTIONS, хотя я использовал ПОЛУЧАТЬ только при получении данных с сервера 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/ для успешного выполнения запроса.

Что я делаю неправильно?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
11
0
6 445
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

A CORS preflight request is a CORS request that checks to see if the CORS protocol is understood. It is an OPTIONS request, using three HTTP request headers: Access-Control-Request-Method, Access-Control-Request-Headers, and the Origin header.

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

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

Вау, проблема решена, ха-ха. Я даже не знал об этом, спасибо!

Unigazer 26.10.2018 18:21

У меня уже был модуль CORS на сервере, но он все еще доставлял мне головные боли на стороне клиента, но еще раз спасибо.

Unigazer 26.10.2018 18:23

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