我想通过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错误:

react-native - react-apollo错误: Network error: Unexpected token &lt; in JSON at position 1-LMLPHP

如您所见,如果要将其解析为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/

10-12 03:25