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

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

www.ft12.com5年前 (2017-07-29)短网址资讯1700
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

分享给朋友:

相关文章

高并发秒杀系统架构设计 · 抢购、微信红包、短网址、一元夺宝

高并发秒杀系统架构设计 · 抢购、微信红包、短网址、一元夺宝

秒杀业务与难点秒杀业务在各业务中已然非常流行,这里我将互联网行业中的秒杀定义为:在非常短的时间内,将一件商品分成多份进行购买的行为。微信抢红包、短网址、一元夺宝、双11大促抢购等业务本质上都可视作秒杀业务。而最近大热的抢红包的难度在于这是和...

“薅羊毛党”来袭,惹不起,怎么办?

搞活动总是有用户钻空子,一不小心就有可能引来一大群的薅羊毛党,组团刷我们的“活动副本”,把“装备”占有了就撤,惹不起,怎么办?对于运营来说,辛辛苦苦策划并发布一个活动,却意外的招来一大批非目标用户,或者明明也是教育良久的目标用户偏偏不按着正...

林肯公园主唱自杀:这个世上有人正承受着你所不能理解的痛苦

林肯公园主唱自杀:这个世上有人正承受着你所不能理解的痛苦

昨天刷微博的时候看见一条新闻,林肯公园主唱切斯特上吊自杀,那时候我心里只是微微一惊,毕竟这是一个麻木的时代,死亡换来人们一次短暂的叹息,然后大家又陷入彼此庸碌的一生,虽然我们不知道灾难和明天哪一个会先来,但我们终究学会的只是在麻木里等待明天...

原创保护之后自媒体们该何去何从?

原创保护之后自媒体们该何去何从?

自媒体平台兴起 内容创作者春天来临2016年可谓是自媒体平台发展元年,而2017年将成为自媒体平台爆发年,群雄纷争,一场无硝烟的战争一触即发。伴随着BAT等互联网巨头纷纷涌入自媒体平台之争,同时各自号称将出资10亿、20亿甚至100亿元刺激...

淘宝&支付宝:连续一段时间未登录将销号

淘宝&支付宝:连续一段时间未登录将销号

日前阿里巴巴对旗下淘宝、支付宝平台的服务协议进行了修改,对于用户的权利和义务进行了更细致的界定,同时规定在淘宝、支付宝平台的非活跃用户在一定时间之后将会进行销号处理。淘宝平台方面,此次新增加规定,用户不得以任何方式转让,否则淘宝平台有权追究...

国际零售巨头亚马逊染指东南亚 最快本周登录新加坡

国际零售巨头亚马逊染指东南亚 最快本周登录新加坡

【FT12短网址资讯】7月26日音讯,据美国科技类博客Techcrunch报导,全球电商巨头亚马逊(Amazon)将推出新加坡站,以此先开进军东南亚商场的前奏。据悉,亚马逊最快将于本周正式登陆新加坡,并将在新加坡推出亚马逊Prime会员效劳...

发表评论

访客

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