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();//回调发现无需打开窗体时可以关闭之前的临时窗体 
    } 
  }); 
}
上一篇下一篇

猜你喜欢

热点阅读