失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > js 异步操作打开新页面被浏览器拦截的问题

js 异步操作打开新页面被浏览器拦截的问题

时间:2018-12-13 20:48:30

相关推荐

js 异步操作打开新页面被浏览器拦截的问题

最近开发过程中 需要进行接口认证 才能打开新窗口的需求 代码如下

// getMatchBase(.....).then(// result => { //win.open('/matchDetail.html?id=' + matchId);// },// error => {//.......//win.close();// }// )

浏览器只有在认为click和submit在打开新窗口时(如果是_self则不会有此限制),这些操作是由用户主动触发时才是安全可以被执行,而ajax回调函数中去执行click和submit被浏览器认为不是由用户主动触发的,因此不能被安全执行,所以被拦截。

但是 由于异步操作的原因,浏览器会因为安全因素拦截,造成用户体验不好,目前为止我找到的靠谱的解决方法如下

将ajax请求设置为同步,

$.ajax({url: ,data:{ },async:false,complete: function(data){if(data.readyState == 4 && data.status == 200) {window.open('/matchDetail.html?id=' + matchId);} else {}}});

供大家参考。

如果觉得《js 异步操作打开新页面被浏览器拦截的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。