鬼天气
鬼天气
  • 发布:2021-08-23 13:49
  • 更新:2024-02-02 17:03
  • 阅读:1745

第三方app下webview在ios跨域请求失败

分类:uni-app

第三方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异常,无效,

请问,还有哪些途径、办法、思路解决该问题?

2021-08-23 13:49 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

你好,请问你解决了吗

5***@qq.com

5***@qq.com - 爱问问题的小李

解决了吗

野原新之助886

野原新之助886

解决了吗大佬

中午吃啥

中午吃啥

怎么解决的啊大佬们

baiyun_rain

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反向代理按我这样配置即可解决。

要回复问题请先登录注册