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

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

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

分享给朋友:

相关文章

FT12短网址:中国能成为第四次工业革命的引领者吗?

FT12短网址:中国能成为第四次工业革命的引领者吗?

[ FT12短网址 ] ①我国在无人机、互联网、云核算、生物医药、共享经济等方面有很多抢先国际的科技效果;②人工智能到2035年有望拉动我国经济年增加率显着进步,推进我国劳动出产率进步27%;③我国必须在立异中寻觅未来,...

【FT12短网址】借助JavaScript实现几种常见的排序算法

【FT12短网址】借助JavaScript实现几种常见的排序算法

引言排序算法有千千万万种,实现的代码也有很多,比如php, html5, JS等等。但是我们常见的排序算法也就几种而已,比如按大小升序或者降序;比如按字母先后顺序排序;比如按字符长度排序等等。排序算法是所有算法中最基础的基础。虽然关键在于算...

Gartner发布2017年云安全技术成熟曲线

Gartner发布2017年云安全技术成熟曲线

[ FT12短网址 ] 云应用的快速增长不断提高人们在云计算环境中对于数据、应用程序和工作负载的兴趣。Gartner公司发布的云安全技术成熟曲线将有助于安全专业人士重新定位他们在业务支持方面的角色。图片来自网络云应用的快速增长不断...

奶奶的“漫漫”

奶奶的“漫漫”

昨天下了一天雨,以前习惯跑的路有泥洼,换到马路上去跑了五公里,看见一路的农家乐,招牌菜居然是烤全羊。跑步回来,我奶奶就向组织报告:“后院枣树上还有枣,你妈之前打算给你打了放冰箱的,晓得你要漫漫,我让她给你留了点儿。”她懂我喜欢的浪漫。我回家...

“艺网”成为首个获千万级Pre-A轮融资的短网址电商

无论是拍卖、租赁、社区、还是电商,互联网艺术品途径终极目的都是撬动C端用户花费。但不可否认的是,艺术品买卖商场现在仍然比花费晋级慢半拍,用“艺网”创始人朱彤的话来说,“让艺术品走向千家万户最少还需要两年”。2015年建立的“艺网”已经完成了...

简单高效的短网址生成服务C#实现

简单高效的短网址生成服务C#实现

项目中有一处需求,需要把长网址缩为短网址,把结果通过短信、微信等渠道推送给客户。刚开始直接使用网上现成的开放服务,然后在某个周末突然手痒想自己动手实现一个别具特色的长网址(文本)缩短服务。由于以前做过socket服务,对数据包的封装排列还有...

发表评论

访客

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