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

Unable to make API calls using react-native

我在本地有一个使用 Vagrant 构建的虚拟机 运行。我可以卷曲并直接从浏览器转到 URL。出于某种原因,当我使用 fetch API 在我的 react-native 应用程序中进行相同的调用时,它一直给我 Network request failed 错误。

这是代码片段:

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 记录 returns 右边 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

我认为这可能是我的 VM 无法通过我的应用程序以某种方式访问​​的问题,所以我继续将它部署到真实服务器,但它仍然出现相同的错误。

有什么想法吗?

我认为您可能面临 same origin policy 限制。

many 种解决方法。

找到问题并解决了。

问题是由于 API 服务器中没有自创建 CA 的自签名证书引起的。

我可以尝试创建自己的 CA,然后从中创建证书,但我继续并获得了便宜的真实 SSL 证书。那解决了问题。