ajax回调打开新窗体被浏览器拦截
Posted MichelleDawm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax回调打开新窗体被浏览器拦截相关的知识,希望对你有一定的参考价值。
1 function click_fun(){ 2 3 $.ajax({ 4 ‘url‘: ‘${pageContext.request.contextPath}/action/‘, 5 ‘type‘: ‘post‘, 6 ‘dataType‘: ‘json‘, 7 ‘data‘: data, 8 success: function (data) { 9 window.open("www.baidu.com");//被拦截 10 }, 11 error:function(){ 12 13 } 14 }); 15 }
被拦截原因:打开新窗体只能在点击事件内触发,点击事件内的回调函数内打开窗体会被拦截,浏览器会认为是广告弹窗之类的代码
解决方案:
1 function click_fun_new(){ 2 var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截 3 $.ajax({ 4 ‘url‘: ‘${pageContext.request.contextPath}/action/‘, 5 ‘type‘: ‘post‘, 6 ‘dataType‘: ‘json‘, 7 ‘data‘: data, 8 success: function (data) { 9 tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径 10 }, 11 error:function(){ 12 tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体 13 } 14 });
以上是关于ajax回调打开新窗体被浏览器拦截的主要内容,如果未能解决你的问题,请参考以下文章
window.open(url)新窗口打开链接被浏览器拦截解决方案
ajax请求成功后新窗口window.open()被拦截的解决方法