【问题标题】:HTTP fetch request always fails on react-nativeHTTP fetch 请求在 react-native 上总是失败
【发布时间】:2019-05-21 09:57:30
【问题描述】:

我的服务器上有一个没有配置 https 的后端。在它与 http 一起正常工作之前,一切正常。由于某种原因,现在我收到此错误:

TypeError: Network request failed
    at XMLHttpRequest.xhr.onerror (whatwg-fetch.js:504)
    at XMLHttpRequest.dispatchEvent (event-target.js:172)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:580)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:394)
    at XMLHttpRequest.js:507
    at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
    at MessageQueue.__callFunction (MessageQueue.js:366)
    at MessageQueue.js:106
    at MessageQueue.__guard (MessageQueue.js:314)
    at MessageQueue.callFunctionReturnFlushedQueue (MessageQueue.js:105)

我用谷歌搜索,看起来问题出在 http 上。它适用于其他 api 上的 https。但是我的没有配置http。有没有办法让它现在只使用 http?

【问题讨论】:

    标签: http react-native request fetch


    【解决方案1】:

    如果您在 Android 上进行测试,则需要启用 clearTextTraffic,以便系统允许您的应用通过 HTTP 进行通信。

    在您的AndroidManifest.xml 中添加android:usesCleartextTraffic="true"

    【讨论】:

      【解决方案2】:

      好的。有了一点 romin21 的提示,我现在就让它工作了。有一个文件

      android/app/src/debug/res/xml/react_native_config.xml

      这会覆盖您的 AndroidManifest。所以起初我尝试将它添加到 AndroidManifest 中,当然它没有工作,我已经有这个文件覆盖它。但是当我将后端的 IP 地址添加到该文件时,它运行良好

      <domain includeSubdomains="false">YOUR IP</domain>
      

      【讨论】:

        【解决方案3】:

        解决方法一是将以下代码添加到AndroidManifest.xml文件

        android:usesCleartextTraffic="true"
        

        但在我的情况下,我只想允许我的 API 域所以我在android/app/src/res/xml/network-security-config.xml 文件中添加了以下代码。

        <network-security-config>
            <domain-config cleartextTrafficPermitted="true">
                <domain includeSubdomains="false">localhost</domain>
                <domain includeSubdomains="false">Your IP/Domain</domain>
            </domain-config>
        
        </network-security-config>
        

        我希望这会有所帮助。谢谢!

        【讨论】:

          猜你喜欢
          • 2015-07-06
          • 1970-01-01
          • 2017-06-05
          • 1970-01-01
          • 1970-01-01
          • 2020-07-05
          • 2021-12-29
          • 2020-07-04
          • 1970-01-01
          相关资源
          最近更新 更多