0

目前我正在尝试为我的 nextjs 项目工作获取 api。对于部署,我使用的是 zeit 的 NOW v2(本地通过“now dev”)。

除了graphql-server,一切正常。

在操场上并通过客户端我收到 404 错误。查询正在正确执行,但我得到一个错误对象(查询结果在响应字段中;404)。

在 playground-gui 中检查它:同样的问题,在显示消息“无法访问服务器”的 playground-input 字段中。

游乐场初始错误:

{
  "error": "Response not successful: Received status code 404"
}

hello-query 后的游乐场:

{
  "error": {
    "data": {
      "hello": "Hello world!"
    }
  }
}

浏览器控制台游乐场:

Error: "Response not successful: Received status code 404"

这是我现在加载的 graphql-server:

import express from 'express';
import { ApolloServer, gql } from 'apollo-server-express';

const typeDefs = gql`
    type Query {
        hello: String
    }
`;

const resolvers = {
    Query: {
        hello: () => 'Hello world!',
    },
};

const server = new ApolloServer({ typeDefs, resolvers,
                                    introspection: true, playground: true,
                                    subscriptions: {path: '/api'},
                                });

const app = express();
server.applyMiddleware({ app, path: "/api", cors: true });

module.exports = app;

也试过这个例子。同样的问题。

谁能告诉我如何让它正常运行?

4

1 回答 1

1

我有一个类似的问题(无法访问服务器)。这是一个授权问题。GraphQL Playground 文档提到了request.credentials设置:

const server = new ApolloServer({
    typeDefs,
    resolvers,
    introspection: true,
    playground: {
      settings: {
        // So that auth works
        // Docs: https://github.com/prisma/graphql-playground
        ['request.credentials']: 'same-origin',
      },
    },
    subscriptions: {path: '/api'}
});
于 2019-09-05T18:16:14.667 回答