第三方app下webview在ios跨域请求失败,
1.第三方app提供内嵌webview的方式,给自定义业务使用,现在做了个前后端分离项目,放在该webview中,第三方app提供配置http url,url地址为前端服务地址,
2.使用uniapp完成h5开发和发布,使用nginx部署前端服务并配置反向代理,跨域请求后端接口,
3.安卓版app下,一切正常,
4.ios版app下,webview能访问到前端服务的静态文件,但是js的后端请求失败,vconsole网页插件可以在network看到,后端请求status一直pending,若干秒后status变成0,
5.nginx的access.log发现,安卓app访问时,有2个ip的请求,一个是静态资源文件的请求日志,一个是跨域接口的请求日志,
但是ios app访问时,只有1个ip的请求,即静态资源文件的请求日志,没有跨域接口的请求日志,
已做的尝试:
1.按照https://ask.dcloud.net.cn/article/36348#uiwebview
设置UIWebview,无效,
2.nginx反向代理配置加
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin $http_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Methods 'GET,POST,PUT,DELETE,OPTIONS' always;
add_header Access-Control-Allow-Headers 'Authorization,X-Requested-With,Content-Type,Origin,Accept' always;
add_header Access-Control-Max-Age 3600;
add_header Content-Length 0;
return 200;
}
add_header Access-Control-Allow-Origin $http_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Methods 'GET,POST,PUT,DELETE,OPTIONS' always;
add_header Access-Control-Allow-Headers 'Authorization,X-Requested-With,Content-Type,Origin,Accept' always;
这样的配置,无效,
3.前端服务也将nginx改用apache试过配置反向代理,同样的安卓app正常,ios异常,无效,
请问,还有哪些途径、办法、思路解决该问题?
5 个回复
4***@qq.com
你好,请问你解决了吗
5***@qq.com - 爱问问题的小李
解决了吗
野原新之助886
解决了吗大佬
中午吃啥
怎么解决的啊大佬们
baiyun_rain - 多敲代码
if ($request_method = OPTIONS){
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS,DELETE,PUT';
add_header Access-Control-Allow-Headers 'Cookie,fssource,x-requested-with,content-type,token';
return 204;
}
nginx反向代理按我这样配置即可解决。