Axios请求 window.open本拦截直接走 catch方法 处理(IOS系统处理)

按照惯例,我们得先找一下 有没有已经解决的方法
然后 一顿搜索,发现全都是 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("网络连接失败");
						});

你可能感兴趣的:(异常处理)