javascript - 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)
})
解决方案
通过将 ios 更新到 14.0 版本来修复。可能会通过更新到高于 12.3.1 的任何版本来修复
推荐阅读
- css - 限制下载按钮,只有登录用户才能查看按钮
- mysql - MYSQL 中的 date_trunc('minute', timestamp) 等价物
- npm - 无法使用“=”登录 cross-env-shell
- python-3.x - Python 异步 Websocket 方法返回 Future
- python - 我正在尝试创建一个猜数游戏,但是当我运行它时,它会继续运行 while 循环并且不会中断
- flutter - 对 BorderRadius 感到困惑
- structure - Visual Studio 中的维度结构选项卡在哪里?
- communication - 如何为非 subnero 调制解调器编写调制解调器驱动程序?
- windows - 使用 for 循环列出所有 mp4 文件并选择一个
- javascript - 如何从客户端获取firebase存储json文件