У меня проблемы с пониманием клиентской библиотеки 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/ для успешного выполнения запроса.
Что я делаю неправильно?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Запрос опций, вероятно, является предполетный запрос для 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
У меня уже был модуль CORS на сервере, но он все еще доставлял мне головные боли на стороне клиента, но еще раз спасибо.
Вау, проблема решена, ха-ха. Я даже не знал об этом, спасибо!