You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GraphQL实现WordPress数据到React Native应用的对接?及JSON解析错误问题求助

解决React Native中Apollo Client连接WordPress GraphQL时的JSON Parse错误

这个错误我之前也碰到过,本质是Apollo Client请求接口后拿到的不是预期的JSON数据,而是HTML内容(比如404错误页、服务器重定向页面),所以才会出现Unrecognized token '<'的解析错误。咱们一步步来排查解决:

1. 先修正GraphQL接口地址的小问题

你在初始化ApolloClient时写的地址末尾多了一个斜杠:

const client = new ApolloClient({ uri:'http://10.0.2.2:10005/graphql/' })

而你提到的正确接口地址是http://10.0.2.2:10005/graphql,这个额外的斜杠可能会触发服务器的重定向,返回HTML页面而非JSON数据。先把斜杠去掉:

const client = new ApolloClient({ uri:'http://10.0.2.2:10005/graphql' })

2. 验证WordPress GraphQL接口是否正常工作

在电脑的浏览器里直接访问http://10.0.2.2:10005/graphql,如果是WPGraphQL插件的话,应该能看到GraphQL Playground的界面:

  • 如果看不到,先确认WPGraphQL插件已经在WordPress后台激活,并且没有被禁用;
  • 检查你的WordPress服务器是否正常运行,端口10005是否能正常访问,没有被防火墙或其他服务占用。

3. 确保React Native应用有网络访问权限

Android端

打开android/app/src/main/AndroidManifest.xml,确认添加了网络权限:

<uses-permission android:name="android.permission.INTERNET" />

iOS端

打开ios/[你的应用名]/Info.plist,添加允许HTTP请求的配置(因为你用的是http而非https):

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

4. 调试请求和响应内容

如果上面的步骤还没解决问题,可以给ApolloClient添加错误日志,查看实际的响应内容:

// 替换原来的ApolloClient初始化代码
import { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client';
import { onError } from '@apollo/client/link/error';
import { ApolloLink } from 'apollo-link';

const httpLink = createHttpLink({
  uri: 'http://10.0.2.2:10005/graphql',
});

const errorLink = onError(({ graphQLErrors, networkError, response }) => {
  if (networkError) {
    console.log(`[网络错误详情]:`, networkError);
    // 如果能拿到响应,可以打印出来看是不是HTML
    if (response) console.log(`服务器返回内容:`, response);
  }
});

const client = new ApolloClient({
  link: ApolloLink.from([errorLink, httpLink]),
  cache: new InMemoryCache(),
});

通过日志你能明确看到服务器返回的是不是HTML,进一步定位问题。

5. 确认GraphQL查询语句的正确性

把你写的查询语句放到WordPress的GraphQL Playground里执行:

{
  posts {
    edges {
      node {
        id
      }
    }
  }
}

如果Playground里能返回正常的JSON数据,说明查询没问题;如果报错,可能是WPGraphQL的字段命名不同,或者需要授权才能访问帖子数据。

内容的提问来源于stack exchange,提问作者fatma mahmoud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:28:14