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

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

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

分享给朋友:

相关文章

看了那么多SEO教程,为何你还是搞不定排名?

看了那么多SEO教程,为何你还是搞不定排名?

前言:本文独家原创首发卢松松博客,转载请保留作者联系方式与原文出处!前些天和一个朋友在讨论互联网营销的时候偶然提到了SEO优化,朋友说去年买了一套SEO教程自学,到目前为止,差不多将近一年了,排名还是非常的不好(几乎没有排名)。我问他既然看...

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

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

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

我作为程序员辣么穷的黑历史

我在十三、四岁的时候第一次真正进入编程这个领域。从十一岁开始我就一直对计算机非常感兴趣,但在十三岁之前并没有太多地涉足编程。那大约是五年前。我记得在中学玩过一个游戏:Runescape。很多时候游戏都会崩溃,并且会看到一个奇怪的包含外国文字...

WebSocket 的鉴权授权方案

WebSocket 的鉴权授权方案

引子WebSocket 是个好东西,为我们提供了便捷且实时的通讯能力。然而,对于 WebSocket 客户端的鉴权,协议的 RFC 是这么说的:This protocol doesn’t prescribe a...

【FT12短网址】事件代理:模式 or 反模式?

前言终于熬过四个月了,人都黑了一圈。8 月 4 号的早读文章由 @ 文蔺翻译授权分享。正文从这开始~JavaScript 工具包(toolkit)和框架所做的大量工作,都集中于尝试修复、规范或优化浏览器的功能实现。此类工作需要做出许多假设,...

Furla上半年亚太区销售猛涨63% 将推迟IPO

虽然全球时尚零售动荡,但至今已有90周年的意大利轻奢品牌Furla近两年俨然成为行业的最大黑马。继去年录得创历史纪录的销售额后,在截至6月30日的今年上半年内,Furla销售额再度录得双位数的强劲增长,在中国消费者的追捧下同比猛涨23.5%...

发表评论

访客

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