按照惯例,我们得先找一下 有没有已经解决的方法
然后 一顿搜索,发现全都是 Ctrl + C,Ctrl + V的 博客,
统统都是 如下方法: 连标点符号都没变,嘿,mdzz
//在axios发送之前就打开一个空白的新窗口
var newPage = window.open()
//如果这样写,打开的空白页上有标题,显示的是“无标题”
window.open('about:blank') 这样的话,标题上显示的是'about:blank'
//然后在axios的then回调里写入打开的url的地址
newPage.location.href = 'url'
//这样就解决了浏览器自动拦截的问题了
当然 上述 方法 成功了 66.7%,因为 浏览器和Android手机都可以了,唯独苹果手机不行,就是不走 then 方法去执行 newPage.location.href = ‘url’
这个时候 ,我的脑袋两个大
后来查找原因,猜想可能是 axios 的问题,可能是 ES6的问题,结果尝试以后都不是。0.0
最后 猜想可能是 ios 网页打开方式问题 定义的 var newPage = window.open() 其中 newPage 是没用的
这个时候 window 还在,但newPage 为nil,所以 最后的 修改方式 window.location.href = ‘./xxx.html’;如下:
let url = "https://xxx.xxxxx"
window.open("about:blank")
axios.post(url, {
phone: self.mobile,
password: self.password
})
.then(function(response) {
if(response.data.code == "000") {
window.location.href = './xxx.html';
} else if(response.data.code == "001") {
self.errorTip(response.data.msg);
}
})
.catch(function(error) {
self.errorTip("网络连接失败");
});