js 异步操作打开新页面被浏览器拦截的问题
生活随笔
收集整理的這篇文章主要介紹了
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 {}}});供大家參考。
?
轉載于:https://www.cnblogs.com/lisiyang/p/8432571.html
總結
以上是生活随笔為你收集整理的js 异步操作打开新页面被浏览器拦截的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 静态代理和JDK动态代理
- 下一篇: jspservlet初体验——用户登录功