Javascript 如何配置app.json以接受所有连接类型,如HTTP请求?

Javascript 如何配置app.json以接受所有连接类型,如HTTP请求?,javascript,android,react-native,expo,fetch-api,Javascript,Android,React Native,Expo,Fetch Api,在我的原生应用程序中,我一直试图从RubyonRailsAPI获取数据,但似乎不允许http连接 我找到的所有解决方案要么在Android中为AndroidManifest.xml添加配置,要么在iOS中为Info.plist添加配置,我无法访问,但我宁愿在Expo中继续开发,而不是弹出。我已经尝试将localhost更改为127.0.0.1,10.0.2.2,以及我的机器的IP,但都不起作用。我查看了和的文档,但找不到有关在Expo中配置应用程序传输安全性的任何信息。我目前正在运行androi

在我的原生应用程序中,我一直试图从RubyonRailsAPI获取数据,但似乎不允许http连接

我找到的所有解决方案要么在Android中为
AndroidManifest.xml
添加配置,要么在iOS中为
Info.plist
添加配置,我无法访问,但我宁愿在Expo中继续开发,而不是弹出。我已经尝试将
localhost
更改为
127.0.0.1
10.0.2.2
,以及我的机器的IP,但都不起作用。我查看了和的文档,但找不到有关在Expo中配置应用程序传输安全性的任何信息。我目前正在运行android 9.0 Pie上的Expo

fetch(`http://localhost:3000/api/v1/trainers`, {
    headers: { 
    Accept: 'application/json',
    "Content-Type": "application/json" 
},
}).then(res => res.json())
.catch(err => console.log(err));

您的RESTAPI在哪个域上? 从react本机应用程序(在模拟器上运行)获取node.js/express REST api时,我遇到了同样的问题。我在React中找不到解决方法

我用ngrok()找到了一个解决方案。它允许您向外部公开特定的本地域:端口。使用这种方法,我能够从我的应用程序获取RESTAPI


说清楚一点,我不确定问题是否出在React Native身上。我怀疑是我的防火墙不允许连接通过。我没有弄乱所有这些设置,而是简单地使用了ngrok。

我的restapi是在localhost上运行的,ngrok正是我所需要的!非常感谢。Ngrok可以工作,但如果你是免费版本的话,每次启动Ngrok时都必须更改端点,这有点让人恼火。我能想到的唯一其他选择是使用自签名证书并在设备上手动安装CA
TypeError: Network request failed
    at XMLHttpRequest.xhr.onerror (420454d9-7271-44d5-b…-3a968d130699:48065)
    at XMLHttpRequest.dispatchEvent (420454d9-7271-44d5-b…-3a968d130699:53513)
    at XMLHttpRequest.setReadyState (420454d9-7271-44d5-b…-3a968d130699:52368)
    at XMLHttpRequest.__didCompleteResponse (420454d9-7271-44d5-b…-3a968d130699:52195)
    at 420454d9-7271-44d5-b…-3a968d130699:52305
    at RCTDeviceEventEmitter.emit (420454d9-7271-44d5-b…-3a968d130699:22482)
    at MessageQueue.__callFunction (420454d9-7271-44d5-b…-3a968d130699:22097)
    at 420454d9-7271-44d5-b…-3a968d130699:21854
    at MessageQueue.__guard (420454d9-7271-44d5-b…-3a968d130699:22051)
    at MessageQueue.callFunctionReturnFlushedQueue (420454d9-7271-44d5-b…-3a968d130699:21853)