写点什么

苹果手机请求程序报 network error 错误

用户头像
石云升
关注
发布于: 4 小时前
苹果手机请求程序报network error错误

最近有用户反馈在使用 APP 的时候,一直提示 network error 错误,但是本身网络都是正常的。一开始我以为是运营商劫持,因为好几年前遇到过这种情况。当初解决的方案是做了多个服务器域名配置到 APP 里。当连接不上服务器但可以 ping 百度的时候,在换个可以 ping 通的域名请求。


这次用户访问服务器是正常的,而且反馈的 3 个用户都是苹果手机。然后就去查了下。发现 ios 12 系统不支持如下跨域配置,否则就会造成 Network error


    add_header 'Access-Control-Allow-Origin' '*';    add_header 'Access-Control-Allow-Headers' '*';    add_header 'Access-Control-Allow-Credentials' 'true';    add_header 'Access-Control-Allow-Methods' '*';    if ($request_method = 'OPTIONS') {       return 200;    }
复制代码


后面改成如下配置就好了。


location / {
#以下为新配置 # 预检命令的缓存,如果不缓存每次会发送两次请求 add_header Access-Control-Max-Age 3600; # 带cookie请求需要加上这个字段,并设置为true add_header Access-Control-Allow-Credentials true; # 表示允许这个域跨域调用(客户端发送请求的域名和端口) # $http_origin动态获取请求客户端请求的域 不用*的原因是带cookie的请求不支持*号 add_header Access-Control-Allow-Origin $http_origin; # 请求方式*表示全部支持 add_header 'Access-Control-Allow-Methods' '*'; # 表示请求头的字段 动态获取 add_header Access-Control-Allow-Headers $http_access_control_request_headers; # OPTIONS预检命令,预检命令通过时才发送请求 # 检查请求的类型是不是预检命令 if ($request_method = OPTIONS){ return 200; } #其他配置....
}
复制代码


发布于: 4 小时前阅读数: 6
用户头像

石云升

关注

做时间的朋友,用文字记录成长。 2017.11.30 加入

InfoQ签约作者、年度最佳内容作者、年度功勋人物、1周年最具人气top7 微信公众号:石云升SYS 职场、成长、学习等相关问题,欢迎你留言和我交流。遇到喜欢的文章记得点赞,评论。

评论

发布
暂无评论
苹果手机请求程序报network error错误