我成功地将 graphene 和 graphene-django 安装到我的项目中,并且能够在我的本地环境中使用 GraphiQL 界面进行查询。
当我将我的应用程序部署到生产环境并访问 GraphQL 端点时,GraphiQL 界面无法正常工作,并在输出部分显示我的 base.html 的内容。“文档”也不会加载任何内容。
生产配置中一定有一些东西干扰了 GraphQL,但我还不能确定它。
任何想法,将不胜感激!
我成功地将 graphene 和 graphene-django 安装到我的项目中,并且能够在我的本地环境中使用 GraphiQL 界面进行查询。
当我将我的应用程序部署到生产环境并访问 GraphQL 端点时,GraphiQL 界面无法正常工作,并在输出部分显示我的 base.html 的内容。“文档”也不会加载任何内容。
生产配置中一定有一些东西干扰了 GraphQL,但我还不能确定它。
任何想法,将不胜感激!
我发现 Django 给出了 CSRF 验证失败,这就是问题所在。
更新 GraphQL url 端点以包含 csrf_exempt 解决了该问题。
urls.py 中的原始文件:
url(r'^graphql', GraphQLView.as_view(graphiql=True, schema=schema)),
更新 urls.py:
from django.views.decorators.csrf import csrf_exempt
url(r'^graphql', csrf_exempt(GraphQLView.as_view(graphiql=True, schema=schema))),
来源:https ://github.com/graphql-python/graphene-django/issues/61