反应本机axios请求不在IOS模拟器中工作

问题描述 投票:2回答:2

我正在尝试使用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
    });
}; 

http的info.plist设置:

enter image description here

它在Android模拟器中工作正常,但IOS模拟器无法正常工作。

在我的浏览器调试控制台中显示:

enter image description here

和Mac终端显示:

enter image description here

任何人都可以告诉我,我犯了错误吗?或者我是否需要为IOS进行任何其他配置?

我的平台:

  • 操作系统:Mac 10.13
  • 节点:10.7
  • npm:6.3.0
  • 反应:16.4.1
  • 反应原生:0.55
ios react-native ios-simulator axios
2个回答
0
投票

使用以下命令更新您的Info.plist:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

0
投票

在尝试更改ATS键时,您删除了一个用于响应原生的NSAppTransportSecurity的plist值

<key>NSAppTransportSecurity</key>
    <dict>
        <key>localhost</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        <key>bloodconnector.org</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
</dict>
© www.soinside.com 2019 - 2024. All rights reserved.