问题现象:IOS11,IOS12手机POST方法,发起的option请求之后,返回的status为0,客户端就不再发起POST请求了,导致无法拉取到数据,高版本的IOS手机和android手机都是OK的,服务器也做了跨域设置如下:
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods '*';
add_header Access-Control-Allow-Headers '*';
最后定位问题就是
add_header Access-Control-Allow-Headers '*';
允许所有头部类型没有生效导致的,我们使用的是openresty后端,参考网上的文章,在OPTION里做了如下过滤,也算是做了一个低版本的兼容。
改之前:
location / {
if ($request_method = 'OPTIONS') {
return 204;
}
limit_req zone=one burst=60 nodelay;
content_by_lua_file ./../app/main.lua;
}
改之后:
location / {
if ($request_method = 'O

本文探讨了iOS11及以下设备在使用POST方法发起跨域请求时,由于Access-Control-Allow-Headers设置不全导致响应状态码为0的问题。通过详细介绍如何在OpenResty后端修改配置,解决低版本iOS的兼容性问题,确保正常数据拉取。
最低0.47元/天 解锁文章
1603

被折叠的 条评论
为什么被折叠?



