ajax请求,重定向到一个新页面以及回调打开新窗体被拦截
2020-10-15 本文已影响0人
Cute_小肥鸡
打开一个新窗体,使用window.open(),它可以实现除用a标签以外来实现打开新窗口!但是,ajax回调打开新窗体,会被浏览器拦截,如何解决?
一般写法:
function click_fun(){
window.open("www.baidu.com");//能打开
$.ajax({
url: window.contextPath+"session/IndexController",
type: "POST",
data: {"o_i":currentOrgID},
success: function (data) {
window.open("www.baidu.com");//被拦截
},
});
}
正确写法:
function click_fun(){
var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截
$.ajax({
url: window.contextPath+"session/IndexController",
type: "POST",
data: {"o_i":currentOrgID},
success: function (data) {
tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径
},
error:function(){
tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体
}
});
}