我想通过Apollo向该服务器发送请求并获取查询:const client = new ApolloClient({ link: new HttpLink({ uri:
'http://mfapat.com/graphql/mfaapp/'}), cache: new InMemoryCache()
})const FeedQuery = gql query{ allFmr{ fmrId, name, studio, bedRm1, bedRm2, bedRm3, bedRm4 }}
`
但是我面临着这个错误信息:
未处理(在react-apollo:Apollo(FMRScreen)中)错误:网络错误:JSON中位置1处的标记<
at new ApolloError (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:109336:32)
at ObservableQuery.currentResult (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:109447:28)
at GraphQL.dataForChild (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:103192:66)
at GraphQL.render (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:103243:37)
....
但是我可以在浏览器中轻松打开“http://mfapat.com/graphql/mfaapp/”并获取查询。有人知道问题出在哪里吗?
最佳答案
现在,Apollo将从服务器发送的所有内容都视为JSON。但是,如果出现错误,则您的服务器可能正在发送HTML以显示基本错误页面。
要查看该错误,请打开您的开发工具,然后查看“网络”标签。这显示了一个示例401错误:
如您所见,如果要将其解析为JSON,您会发现第一个字符是<
,这是我们的错误消息来源。
读取发送的特定错误可以使您修复该错误。
要解决一般错误,请将您的服务器配置为在HTTP错误而非HTML代码上发送JSON。这应该允许Apollo解析它并显示合理的错误页面。
编辑:另请参阅this discussion-希望它们将更改默认的Apollo行为,或至少提供有用的讨论。
关于react-native - react-apollo错误: Network error: Unexpected token < in JSON at position 1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47950455/