我正在尝试使用axios从API获取数据。
这是我的代码,发出一个get请求:
export const loadBloodGroups = () => {
return (dispatch) => {
dispatch({ type: LOADING_BLOOD });
const url = `http://www.example.org/api/bloodgroup/getusersbloodgroup`;
axios.get(url)
.then(response => loadingSuccess(dispatch, response))
.catch(error => loadingFail(dispatch, error));
};
};
const loadingFail = (dispatch, error) => {
console.log(error);
dispatch({
type: LOADING_BLOOD_FAIL,
payload: error
});
};
const loadingSuccess = (dispatch, response) => {
dispatch({
type: LOADING_BLOOD_SUCCESS,
payload: response
});
};
info.plist为http设置:
它在android模拟器中工作正常,但IOS模拟器不工作。
在我的浏览器调试控制台中,它显示:
和Mac终端显示:
有人能告诉我哪里出错了吗?或者我是否需要对IOS进行任何其他配置?
我的平台:
- 操作系统:Mac 10.13
- 节点:10.7
- 国家预防机制:6.3.0
- React:16.4.1
- 天然 reactjs :0.55
5条答案
按热度按时间krugob8w1#
使用以下内容更新您的信息列表:
jgwigjjp2#
在尝试更改ATS密钥时,您删除了react native的密钥,您的plist值为
NSAppTransportSecurity
ghhkc1vu3#
只需编辑信息列表:删除“NSExceptionMinimumTLSVersion”,然后添加值为“假”的“NSExceptionRequiresForwardSecrecy”。
kgqe7b3p4#
在寻找React原生IOS网络错误的解决方案时,我找到了解决方案:当在iOS和Android的localhost路径上工作时会产生问题如果您使用的是Android的localhost,请将此作为您的路径:'http://10.0.2.2:3000'如果您使用的是iOS本地主机,请给予以下内容作为您的路径:网址:http://本地主机:3000
代码如下:
u3r8eeie5#
对我来说,问题是我的请求使用了HTTP而不是HTTPS,显然iOS默认情况下不允许HTTP请求。因此,更新 '~/ios/App_Name/info. plist' 以包含以下内容将启用HTTP请求。