Apolloクライアントライブラリが意図したとおりに機能しないため、理解に問題があります。 GET
HTTPメソッドを送信する代わりに、OPTIONS
取得時にのみ[〜#〜] get [〜#〜]を使用しましたがHTTPメソッド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)
これは明らかに、URLにクエリパラメータが含まれていても、HTTPメソッドが正しくないことを意味します。 Postmanを使用してそのURLをクエリするか、ブラウザーのアドレスバーを使用してURLに移動すると、GraphQLデータが取得されます。クエリを正常に実行するには、_https://cors-anywhere.herokuapp.com/
_を使用する必要があります。
私は何が間違っているのですか?
オプションリクエストはおそらく プリフライトリクエスト for [〜#〜] cors [〜#〜] です。
CORSプリフライトリクエストは、CORSプロトコルが理解されているかどうかを確認するCORSリクエストです。これは、Access-Control-Request-Method、Access-Control-Request-Headers、およびOriginヘッダーの3つのHTTPリクエストヘッダーを使用するOPTIONSリクエストです。
おそらく、クロスオリジンコールを許可するようにサーバーを構成する必要があります。
たぶん、あなたはあなたが始めるためにここでいくつかのインスピレーションを見つけることができます。 CORSを許可REST Heroku上のExpress/Node.jsアプリケーションへのリクエスト