微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

网络请求失败 - 从本地主机 ReactNative

如何解决网络请求失败 - 从本地主机 ReactNative

尝试从 ReactNative 中的 localhost 获取 android 和 ios 设备的 localhost 时,网络请求失败。

我已尝试遵循以前的解决方案,但似乎对我没有任何作用。我遵循了本教程:https://revs.runtime-revolution.com/connecting-react-native-to-localhost-65e7ddf43d02

对于 iOS: 我编辑了 info.plist 并添加了以下代码并在我的模拟器上重新安装了该应用程序,但它仍然无法正常工作。

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>
        </dict>
    </dict>

安卓: 我使用我的 IP 而不是“localhost”来获取 URL,但它仍然不起作用。我也按照教程中的步骤对AndroidManifest.xml进行了配置,但它仍然不起作用。

还有其他解决方案吗???

附注。我正在使用 Macbook。我的 REST API 使用 sql 数据库和 asp.net 核心。我正在尝试获取一个 json。

错误:网络请求失败

获取代码

async getProjects1() {
    const response = await fetch('https://127.0.0.1:5001/api/projects');
    const data = await response.json();
    this.setState({ projects: data,loading: false },function(){console.log(this.state.projects)});
  };

解决方法

您的错误消息说有未处理的承诺拒绝,所以我建议添加错误处理:

async getProjects1() {
    try {
    const response = await fetch('https://127.0.0.1:5001/api/projects');
    const data = await response.json();
    this.setState({ projects: data,loading: false },function(){console.log(this.state.projects)});
    } catch (err) {
      console.log(err)
    }
}

这个问题可能会得到解决,或者你至少可能会得到更清晰的错误信息。

,

我解决了这个问题。错误不是因为本机反应,而是因为我的 asp.net 核心 API。基本上,我只需要将 Properties 文件夹中 launchsettings.js 中的代码从 "applicationUrl": "https://localhost:5001;http://localhost:5000" 更改为 "applicationUrl": "http://localhost:5000"

这解决了这个问题,并且在 react native 中从 localhost 获取没有任何进一步的问题。这个堆栈问题帮助我解决了这个问题:How to fix network error in react-native when access localhost api

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。