2017-05-19 3 views
0

Ich habe erfolgreich Graphen und Graphen-Django in meinem Projekt installiert und bin in der Lage, Abfragen mit der GraphiQL-Schnittstelle in meiner lokalen Umgebung durchzuführen.GraphiQL arbeitet lokal, aber in der Produktion zeigt die Ausgabe Inhalt von base.html (Django-Projekt)

Wenn ich meine App in der Produktion bereitgestellt und den GraphQL-Endpunkt besucht habe, funktioniert die GraphiQL-Schnittstelle nicht und zeigt den Inhalt meiner base.html im Ausgabebereich an. Die "Docs" werden auch nichts laden.

output of graphiql on live app

Es muss etwas in der Produktionskonfiguration sein, die mit GraphQL stören, aber ich habe nicht in der Lage gewesen, es zu stecken noch nach unten.

Irgendwelche Ideen würden geschätzt werden!

Antwort

0

Ich fand heraus, dass Django einen CSRF-Verifikationsfehler gab und das das Problem verursachte.

Durch die Aktualisierung des GraphQL-URL-Endpunkts auf csrf_exempt wurde das Problem behoben.

Original in urls.py:

url(r'^graphql', GraphQLView.as_view(graphiql=True, schema=schema)), 

aktualisiert urls.py:

from django.views.decorators.csrf import csrf_exempt 

url(r'^graphql', csrf_exempt(GraphQLView.as_view(graphiql=True, schema=schema))), 

Quelle: https://github.com/graphql-python/graphene-django/issues/61

Verwandte Themen