从 React Native 和 expo 调用本地域

Call local domain from React Native and expo

我有本地网站,带有 Wampserver 和 Windows(C:\Windows\System32\drivers\etc\hosts 已编辑)。

http://myproject.local

这个网站在我的电脑上工作得很好。

现在,我想用 React Native 和 Expo 创建移动应用程序。

但是,在我的移动应用程序中,当我调用我的网站时:

export function getForumIndex () {
    const url = 'http://myproject.local/api/test'

    return fetch(url)
        .then((response) => response.json())
        .catch((error) => console.error(error))
}

我有这个错误:

[21:29:58] JSON Parse error: Unrecognized token '<' node_modules\promise\setimmediate\core.js:37:14 in tryCallOne node_modules\promise\setimmediate\core.js:123:25 in unknown ... 8 more stack frames from framework internals

我认为我的 phone 和 expo 无法在我的计算机上调用 API(http://myproject.local/api/test). I am a beginner in mobile application. When I test with TMDb API 它运行良好。

我不知道该怎么做,你能帮我吗? :)

由于您的应用程序 运行 在您的手机 phone 上,您需要通过网络连接到您的计算机。最好的方法是将您的 phone 和计算机连接到同一个 wifi 网络,然后将 myproject.local 替换为您的计算机所连接的 wifi 网络的本地 IP 地址,例如 http://192.168.1.1/api/test 其中 192.168.1.1 替换为您计算机的本地 IP 地址。您可以关注 these steps 查找您的本地 IP 地址。

因为你在本地开发。您将需要使用您机器的本地 IP。

首先,打开命令提示符并执行 ipconfig 请注意 IPV4 地址,这将是您用于 AP urI 的本地 IP,例如 http://192.168.10.100:80/api/test.php

实际响应不是 json 服务器正在呈现 html 页面。 所以你得到 JSON 解析异常。

而不是响应json() 尝试使用 console.log(response.text())

在该日志中,您将获得 html 代码,您可以从中了解错误是什么。

你必须使用你机器的IP地址,