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

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

www.ft12.com8年前 (2017-07-29)短网址资讯2613
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短网址教你如何记录阅读进度

大家是否会遇到这些需求:如果有三个tab页签,从某个tab页签下跳出去打开新页后,点击浏览器后退键,能回到跳出去的相应tab页签下希望像原生app那样在wap端的列表页跳到详情页,点击浏览器后退键,能回到跳出去的列表处如果有上拉加载更多,希...

比特币与以太币狭路相逢,这是一场单品与生态的对决

以太币vs比特币,哪个更有出路?  来源 | 洪言微语(ID:hongyanweiyu)  作者 | 薛洪言  比特币作为区块链数字钱银开创者,一直稳居数字钱银龙头位置,遥遥领先其他竞争币(相比比特币有所改良的数字钱银)和山寨币(彻底cop...

都有哪些地方需要用到短网址?

为什么有那么多互联网企业推出短网址业务?包括google、百度、新浪、腾讯......首先网址缩短这种服务是在微博出现之后才流行开来的,原因很简单,微博140字限制,能表达的内容本来就两三句,如果再出现一个网址,就会占用非常大的篇幅,比如本...

Cassandra 初学者指南

Cassandra 初学者指南

本文是一篇科普文,适合 Cassandra 的初学者。 基本介绍 Apache Cassandra 是一种分布式非关系型数据库,具有高性能、可扩展、无中心化等特征。Cassandra 是适用于社交网络业务场景的数据...

F12短网址教你如何生成微信图文短链接,缩短微信朋友圈网址

F12短网址教你如何生成微信图文短链接,缩短微信朋友圈网址

平常推送微信图文或许设置自定义菜单关键词回复的时分,有时需要用到微信公众号的图文连接(怎么获取图文连接地址,不知道的用户可以参阅一键获取微信视频地址的详细功能介绍中的补充说明),信任许多用户都感觉连接过长,不便于用户辨认,排版也不美观,为了...

高效排查短网址系统故障:高并发引起的系统设计“踩坑”案例

高效排查短网址系统故障:高并发引起的系统设计“踩坑”案例

短网址的判定逻辑十分复杂,一方面是各种类型的网址,有正常的短链接,另外是短网址保证用户的使用,特别是商家的影响面非常广,任何一个小故障都可能引发一些社会问题,所以FT12短网址对产品的质量,对服务的连续性有严格的要求。FT12短网址的技术人...

发表评论

访客

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