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的浏览器中执行此查询时,它将正确获取数据
答案 0 :(得分:1)
如果将来有人发现此错误,您可能会收到此错误的另一个原因是您的 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/
答案 1 :(得分:0)
您要向其发布查询的graphql端点缺少/graphql
。因此,您的服务器可能返回了一个html文档,其中包含404错误消息,该消息以<
中的<html...
开头。 Apollo尝试将其解析为查询结果,但没有这样做。
检查httpLink
实际上是localhost:3090/graphql
。
查询的语法也可以是:
{
users {
email
}
}
,或者如果您想命名查询:
query Users {
users {
email
}
}
答案 2 :(得分:0)
在查询文件中未正确定义路径时,会发生这种情况。这是传递参数时的类型检查错误