网络请求失败 - 从本地主机 ReactNative 获取
Network request failed - fetching from localhost ReactNative
当我尝试从 ReactNative 中的本地主机获取 android 和 ios 设备时,网络请求失败。
我试过遵循以前的解决方案,但似乎没有任何效果。我遵循了本教程: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>
对于Android:
我使用我的 IP 而不是 'localhost' 来获取 URL,但它仍然没有用。我也按照教程中的步骤对 AndroidManifest.xml 进行了配置,但它仍然不起作用。
还有其他解决方案吗???
PS。我正在使用 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 中从本地主机获取数据没有任何其他问题。这个堆栈问题帮助我解决了这个问题:
当我尝试从 ReactNative 中的本地主机获取 android 和 ios 设备时,网络请求失败。
我试过遵循以前的解决方案,但似乎没有任何效果。我遵循了本教程: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>
对于Android: 我使用我的 IP 而不是 'localhost' 来获取 URL,但它仍然没有用。我也按照教程中的步骤对 AndroidManifest.xml 进行了配置,但它仍然不起作用。
还有其他解决方案吗???
PS。我正在使用 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 中从本地主机获取数据没有任何其他问题。这个堆栈问题帮助我解决了这个问题: