Javascript 无法使用react native进行API调用

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

我有一个本地运行的VM,它是使用Vagrant构建的。我能够卷曲并直接从浏览器转到URL。出于某种原因,当我使用
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本机应用程序。同源策略仅适用于浏览器!