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

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

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

分享给朋友:

相关文章

关于短网址算法的讨论和分析

今天小编无意中在互联网上看到了关于短网址一些算法,非常新奇,和已有的算法有很大的区别:  1)将长网址md5生成32位签名串,分为4段, 每段8个字节;  2)对这四段循环处理, 取8个字节, 将他当作16进制串与0x3fffffff(30...

暴涨520万倍,比特币还能买吗?

暴涨520万倍,比特币还能买吗?

暴涨520万倍,比特币还能买吗?原上草最近,比特币疯狂上涨,很多网友纷纷来信咨询,问草哥还能不能买。前几天,比特别价格首次突破4000美元,相当于人民币接近3万元一枚。2009年刚出来的时候,1美元可以买1300枚比特币,如今价值超过400...

iPhone X再见,我们来看看iPhone X的8大缺点

前几天苹果举行了新品发布会,这次带来了三部手机,iPhone8和iPhone8 Plus以及iPhone X,iPhone8在外观上和iPhone7的一样的,不同的是使用了玻璃材质。当然,不可否认,作为苹果iPhone十周年的纪念款机型,i...

从100万个搜索中结果,得出16个SEO优化的核心影响因素

从100万个搜索中结果,得出16个SEO优化的核心影响因素

尽管这篇文章剖析的是google,可是很多关于其他查找引擎也同样受用,不得不说的是在查找技术上baidu与google的距离还是很远,可能方向都放到赚钱去了吧,OK,让咱们开端吧!咱们剖析了100万个查找成果(SERP)来回的一下这个问题:...

为了抢夺抢中国游客,马云与万豪国际设合资公司

北京时间8月7日晚间消息,据彭博报道,阿里巴巴与万豪国际合作,大力推动自己的旅行服务。万豪是全球最大的酒店经营商,旗下6,000多家酒店遍及全球。  两边将成立一个合资公司,在阿里巴巴旗下的飞猪(Fliggy)网站上推广万豪旗下的酒店,包括...

FT12短网址:新一轮全球数字竞争中制造业转型升级是关键

FT12短网址:新一轮全球数字竞争中制造业转型升级是关键

[ FT12短网址 ] 腾讯董事会主席兼首席执行官马化腾8月25日在“2017中国两化融合大会”上表示,未来20年,中国制造要走向中国创造,需要互联网与制造业深度融合,成功的关键在于,中国能否形成软件、硬件与服务三位一体的智能平台...

发表评论

访客

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