我正在使用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正常工作。看到我的其他帖子。在某处:)
答案 0 :(得分:0)
我知道了。该设备(模拟器)无权访问localhost
,因此我不得不将自己的网址设置为http://127.0.0.1:3000/stations
,它的工作就像一个梦。