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; } });