当前位置:首页 > 短网址资讯 > 正文内容

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

www.ft12.com8年前 (2017-07-29)短网址资讯2588
ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢
 

问题:

前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢?
分析:

浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截。
解决方法:

1、异步改为同步,即:async:false

2、将新开窗口指向为一个对象,然后修改对象的 url,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$('.task').bind('click',function(){
var w = window.open();
$.ajax({
type: 'POST',
url: '/surveyTask',
dataType: 'json',
error: function(){
w.close();
},
success: function(res){
w.location = res.url;
}
});
});

最后需要说明的是:网上的动态添加 form 新开窗口的方法,并不适合 ajax 请求,至少博主测试了下仍然被浏览器所拦截。

扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_357.html

分享给朋友:

相关文章

飞牛网上线极速达业务 大润发正式布局全渠道

飞牛网上线极速达业务 大润发正式布局全渠道

2017年5月12日12点12分,飞牛网配送员小刘从大润发上海闸北店出发,历时12分钟,将12.00元的产品送至静安区江场三路12号。当客户汪先生承认收货时,飞牛急速达事务第一笔订单顺利完成。大润发飞牛网宣告,急速达正式上线,这也标志着大润...

任志强为何改口说房价要暴跌

任志强为何改口说房价要暴跌

任志强为何改口说房价要暴跌作者:FT12短网址前几天,任志强有一个演讲,刷爆了网络,他说,中国房价不会跌,鼓励大家尽管去买房。后来有网友问草哥,作为一个房价唱空者,对任志强的这个判断怎么看?为了了解背景,我查了一下任志强的说法,他的意思是:...

短网址和二维码的应用:从零开始实现一套聚合支付系统

短网址和二维码的应用:从零开始实现一套聚合支付系统

短网址和二维码在移动扫码支付领域应用越来越广泛,FT12短网址的小编出门从来不带钱,现在从吃饭、交通、购物,甚至是取款机取款,都已经不需要钱和银行卡了。那么这么流行的二维码扫码支付,是如何实现的呢?其实聚合支付的原理很简单,长网址生成短网址...

公司监督将人类工人变成了真菌

共同的智慧告诉我们,随着时间的推移,科幻小说很快就成为现实。电影Gattica描绘了遗传操作技术进步的世界,使得后代的遗传增强对于谁负担得起是很常见的,就业由遗传概况严格决定,从而减少了“无价值”,即没有遗传改良的人到劳动力市场的二等经济地...

跳水女王陈若琳创业 放下5块金牌做起护眼灯

【亿邦动力网讯】台封王,参加三届奥运会拿了5块金牌,成功实现跳水"大满贯"的陈若琳,金牌数目更超越师姐伏明霞。去年,24岁的她发了条微博,淡然宣布退役。退役后的陈若琳需要一个新的开始新的方向。陈若琳找到了同样热爱公益的迟...

思路清奇:通过 JavaScript 获取移动设备的型号

我们一般在浏览器里识别用户的访问设备都是通过 User Agent 这个字段来获取的,但是通过它我们只能获取一个大概的信息,比如你用的是 Mac 还是 Windows,用的是 iPhone 还是 iPad。如果我想知道你...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。