js 异步操作打开新页面被浏览器拦截的问题
生活随笔
收集整理的這篇文章主要介紹了
js 异步操作打开新页面被浏览器拦截的问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近開(kāi)發(fā)過(guò)程中 需要進(jìn)行接口認(rèn)證 才能打開(kāi)新窗口的需求 代碼如下
// getMatchBase(.....).then(// result => { // win.open('/matchDetail.html?id=' + matchId);// },// error => {// .......// win.close();// }// )瀏覽器只有在認(rèn)為click和submit在打開(kāi)新窗口時(shí)(如果是_self則不會(huì)有此限制),這些操作是由用戶主動(dòng)觸發(fā)時(shí)才是安全可以被執(zhí)行,而ajax回調(diào)函數(shù)中去執(zhí)行click和submit被瀏覽器認(rèn)為不是由用戶主動(dòng)觸發(fā)的,因此不能被安全執(zhí)行,所以被攔截。
但是 由于異步操作的原因,瀏覽器會(huì)因?yàn)榘踩蛩財(cái)r截,造成用戶體驗(yàn)不好,目前為止我找到的靠譜的解決方法如下?
將ajax請(qǐng)求設(shè)置為同步,
$.ajax({url: ,data:{ }, async:false,complete: function(data){if(data.readyState == 4 && data.status == 200) {window.open('/matchDetail.html?id=' + matchId);} else {}}});供大家參考。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lisiyang/p/8432571.html
總結(jié)
以上是生活随笔為你收集整理的js 异步操作打开新页面被浏览器拦截的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 静态代理和JDK动态代理
- 下一篇: Jmeter+ant运行脚本,得到HTM