从React Native ios访问Dyson服务器

时间:2019-04-08 17:38:40

标签: react-native xmlhttprequest

我正在使用Dyson为我的React Native应用程序托管一个小型模拟服务器,并尝试从该服务器获取。服务器似乎运行良好,当我在浏览器中访问所需的URL http://localhost:3000/stations时,我得到了一个不错的JSON响应。

在我的React Native操作中,我得到Network request failed

export function fetchStations() {
  return dispatch => {
    dispatch({ type: "GET_STATIONS_START" });
    fetch("http://localhost:3000/stations")
      .then(res => {
        return res.json();
      })
      .then(json => {
        dispatch({ type: "GET_STATIONS_SUCCESS", payload: json.stations });
      })
      .catch(error => {
        console.warn(error);
        dispatch({ type: "GET_STATIONS_FAILURE", payload: error });
      });
  };
}

使用静态本地URL可以正常工作,并且使用Google Maps API可以正常工作(即使这不是我想要的,也可以尝试使用示例API)。

我认为我可能是错误地调用了url,但它在浏览器中有效,因此似乎值得怀疑。我的 guess 与iOS不喜欢http请求(仅接受https)有关,除非您在某处进行了一些设置(我在本地iOS开发中就已经经历过此事)。

如果这是问题,如何从React Native修复它?或者,实际问题是什么?

PS。我使用dyson而不是json-server,因为某些原因我无法使json-server正常工作。看到我的其他帖子。在某处:)

1 个答案:

答案 0 :(得分:0)

我知道了。该设备(模拟器)无权访问localhost,因此我不得不将自己的网址设置为http://127.0.0.1:3000/stations,它的工作就像一个梦。