ajax请求成功后打开新开窗口(window.open())被拦截的解决方法

问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截。

解决方法:先创建一个新窗口,然后在回调函数中修改url

var new_window = window.open();
 $.ajax({
      url: "submit_already_save.html",
      type: 'post',
      dataType: 'json',
      data:info,
      error:function () {
          new_window .close();
       },
       success:function(result){
          new_window .location = "www.baidu.com;
       }
  });

 

posted @ 2017-01-07 16:20  M阳  阅读(2668)  评论(0编辑  收藏  举报