iOS13.5版本以下机型使用WKWebView跨域访问时返回Network Error解决方法

原创
2021/11/26 10:38
阅读数 6.9K

    因为跨域,在复杂访问中浏览器内核会先执行OPTIONS指令,查询支持那些method和header是支持得,在这里WKWebView应该有bug,对于Access-Control-Allow-Headers为“*”时,默认就是返回Network Error,这个不知道什么原因。

    如果我们设置返回Headers为具体值以后,会发现POST方法没有问题而PUT方法还是会返回Network Error,经过排查发现时Access-Control-Allow-Methods为“*”引起得,需要指定具体得方法。

通过上面得测试我们得到两种解决方案:

1.不使用PUT方法,设置如下(根据项目情况而定):

Access-Control-Allow-Headers=Accept,Content-Type,Authorization,Origin

2.支持POST和PUT方法,设置如下(根据项目情况而定)

Access-Control-Allow-Headers=Accept,Content-Type,Authorization,Origin
Access-Control-Allow-Methods=GET,POST,PUT,DELETE,OPTIONS

 

如果使用Vue而且同时集成router,还有更加恶心的问题,正常打开没有问题,返回到这个页面就有问题。

1.通过location.href跳转到其他页面,这个页面嵌套Axios请求,返回到这个页面也会提示Network Error的错误。伪代码如下

getBalancePeriod().then((res)=> {
    getBalanceData(res.period).then((res)=> {
    });
});

但是如果用this.$router.push(path)的方式跳转页面就没有问题,很不明白这个是为什么,留个记号,等待有缘人来解答。

展开阅读全文
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
打赏
2 评论
0 收藏
0
分享
返回顶部
顶部