Javascript 无法使用react native进行API调用
我有一个本地运行的VM,它是使用Vagrant构建的。我能够卷曲并直接从浏览器转到URL。出于某种原因,当我使用Javascript 无法使用react native进行API调用,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个本地运行的VM,它是使用Vagrant构建的。我能够卷曲并直接从浏览器转到URL。出于某种原因,当我使用fetchAPI在我的react原生应用程序中进行相同的调用时,它不断地给我网络请求失败错误 以下是代码片段: fetchData() { this.setState({ isLoading: true }); var baseURL = 'https://192.168.33.33/api/session'; console.log('URL: >>&g
fetch
API在我的react原生应用程序中进行相同的调用时,它不断地给我网络请求失败
错误
以下是代码片段:
fetchData() {
this.setState({ isLoading: true });
var baseURL = 'https://192.168.33.33/api/session';
console.log('URL: >>> ' + baseURL);
fetch(baseURL)
.then((response) => response.json())
.then((responseData) => {
console.log(responseData);
})
.catch(error => {
console.log(error);
})
.done();
}
那里的baseURL
日志返回正确的URL,错误如下所示:
URL: >>> http://192.168.33.33/api/session
TypeError: Network request failed {stack: (...), message: "Network request failed"}
message: "Network request failed"
stack: (...)
get stack: function () { [native code] }
set stack: function () { [native code] }
__proto__: Error
我想这可能是我的虚拟机无法被我的应用程序访问的问题,所以我继续将它部署到一个真正的服务器上,它仍然给出了相同的错误
有什么想法吗?我想你可能面临着限制
有很多解决方法。找到了问题并解决了它 该问题是由于API服务器中的自签名证书没有自行创建的CA造成的
我可以尝试创建自己的CA,然后从中创建一个证书,但我继续,获得了一个便宜的真正的SSL证书。这解决了问题。does
https://192.168.33.33/api/session
在get请求中可能需要一些标题?@lyjackal我不这么认为,所有代码都是这样做的:如果使用XMLHttpRequest对象而不是fetch,是否会出现相同的错误?CORS设置是否正确?您能否向我们提供真实服务器的URL,以便我们能够重现错误?您是否检查了同源策略?谢谢您的回答!不幸的是,情况并非如此。这不适用于react本机应用程序。同源策略仅适用于浏览器!