网络错误:JSON 中新的 ApolloError 位置 0 中的意外标记 <

新手上路,请多包涵

在此处输入图像描述

 const httpLink = createHttpLink({
  uri: 'http://localhost:3090/'
})

const client = new ApolloClient({
  link: httpLink,
  cache: new InMemoryCache()
})

client.query({
  query: gql`
    query users {
        email
    }
  `,
})
  .then(data => console.log(data))
  .catch(error => console.error(error));

从客户端代码获取时,此查询会出错,但是当我在浏览器中的 http://localhost:3090/graphql 上执行此查询时,它会正确获取数据

原文由 Mukesh Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 354
2 个回答

您要将查询发布到的 graphql 端点缺少 /graphql 。因此,您的服务器可能会返回一个 html 文档,其中包含以 < 来自 <html... 开头的 404 错误消息。 Apollo 试图将其解析为查询结果,但失败了。

检查 httpLink 实际上是 localhost:3090/graphql

查询的语法也是:

 {
    users {
        email
    }
}

或者如果你想命名查询:

 query Users {
    users {
        email
    }
}

原文由 trixn 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了防止将来有人发现这个问题,您可能会收到此错误的另一个原因是您的 API 返回的不是 JSON。 https://medium.com/programmers-developers/one-simple-apollo-client-debugging-tip-youll-like-7877a97b9c16

我遇到这个问题是因为从我的 API 返回的内容类型是 text/plain 而不是 application/json 。在这种情况下,Apollo 允许您指定不同的主体序列化程序。 https://www.apollographql.com/docs/link/links/rest/

原文由 Joyce Lee 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题