首页 > 解决方案 > React axios 在 ios 上返回网络错误,但在桌面上没有

问题描述

我在https://example.com (PHP 7.4 Symfony 5.1) 有一个带有 ssl 证书的主要 api 主机,在https://my.example.com有一个前端域(部署了 React 的生产版本) CORS 已配置并且在域之间成功读取cookie。

    $response->headers->set('Access-Control-Allow-Origin', '*');
    $response->headers->set('Access-Control-Allow-Headers', '*');
    $response->headers->set('Access-Control-Allow-Methods', '*');
    $response->headers->set('Access-Control-Expose-Headers', 'X-Pagination-Total');

在桌面(Windows/Linux)上一切正常。在 Google Chrome、Opera 和 Mozilla Firefox 中测试。XHR 请求使用 axios 发送。但在 ios (12.3.1) 上,我收到以下错误:网络错误 - 使用代码在警报中打印:

 alert(JSON.stringify(e.toJSON()));

axios请求示例:

axios.create({
        baseURL: `${process.env.REACT_APP_API_HOST}${process.env.REACT_APP_API_URI_PREFIX}`,
        headers: {
            'Content-Type': 'application/json',
            Accept: 'application/json',
            'X-AUTH-TOKEN': token,
            'X-DEVICE-ID': deviceId
        }
    }).get('/user')
            .then((user) => {
              //
            })
            .catch((e) => {
                // alert('and now json');
                // alert(JSON.stringify(e.toJSON()));

                setTimeout(() => {
                    this.setState({isLoading: false})
                }, 2500)
            })

在此处输入图像描述

标签: javascriptphpreactjsapache

解决方案


通过将 ios 更新到 14.0 版本来修复。可能会通过更新到高于 12.3.1 的任何版本来修复


推荐阅读