You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Apollo GraphQL Sandbox连接到本地GraphQL服务器

问题排查与解决方案

结合你的场景(GraphiQL可正常访问,但Apollo Sandbox无法连接/graphql端点),以下是具体排查方向和解决方法:

1. Devise Token Auth的认证拦截

你使用了devise_token_auth gem,该组件会要求请求携带access-token、client、uid等认证头,未认证的请求会被直接拦截。GraphiQL因为是在Rails页面内加载,可能已经通过登录流程获取了认证状态,但Apollo Sandbox作为独立客户端,默认不会携带这些头信息。

解决方法:

  • 临时在GraphQL控制器中跳过认证测试:
    # app/controllers/graphql_controller.rb
    class GraphqlController < ApplicationController
      # 根据你的devise_token_auth配置调整拦截器名称
      skip_before_action :authenticate_user!, only: [:execute]
      def execute
        # 原有执行逻辑
      end
    
  • 若需要保留认证,在Apollo Sandbox的「Headers」标签页添加认证头:从GraphiQL的请求头(浏览器开发者工具中查看)复制access-token、client、uid三个字段的值填入。

2. Rails CSRF保护限制

Rails默认对POST请求会校验CSRF Token,GraphiQL页面加载时会自动携带X-CSRF-Token头,但Apollo Sandbox作为外部客户端没有该Token,导致请求被拒绝。

解决方法:

  • 在GraphQL控制器中针对JSON请求跳过CSRF验证:
    # app/controllers/graphql_controller.rb
    class GraphqlController < ApplicationController
      skip_before_action :verify_authenticity_token, if: -> { request.format.json? }
      def execute
        # 原有执行逻辑
      end
    
  • 或者手动在Apollo Sandbox添加X-CSRF-Token头:从浏览器开发者工具的Cookie中找到_csrf_token的值填入。

3. CORS配置细节遗漏

即使你确认CORS配置正确,可能存在覆盖不全的情况:

  • 检查config/initializers/cors.rb,确保包含以下配置:
    Rails.application.config.middleware.insert_before 0, Rack::Cors do
      allow do
        origins '*' # 开发环境可临时用*,生产环境需指定具体域名
        resource '*',
          headers: :any,
          methods: [:get, :post, :put, :patch, :delete, :options, :head],
          credentials: true # 必须开启,否则无法携带认证头或Cookie
      end
    end
    
  • 同时在Apollo Sandbox的「Settings」中开启「Include cookies」选项。

4. Apollo Sandbox请求协议/地址问题

  • 确保输入的端点地址是http://localhost:3000/graphql,而非https(本地Rails默认使用HTTP),Sandbox自动跳转HTTPS会导致跨协议连接失败。
  • 临时禁用浏览器的广告拦截器、VPN等插件,排查是否有请求被拦截。

5. GraphQL端点路由约束

检查config/routes.rb中的路由配置,确保支持GET请求(Apollo Sandbox初始化时会发送GET请求做Schema introspection):

# 同时支持POST和GET请求
post "/graphql", to: "graphql#execute"
get "/graphql", to: "graphql#execute"

内容的提问来源于stack exchange,提问作者Mighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:38:12