当前位置:首页 > 短网址资讯

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

www.ft12.com9年前 (2017-07-29)短网址资讯1555
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短网址教你如何利用大数据算法定位网站性能瓶颈(BOSS)

FT12短网址教你如何利用大数据算法定位网站性能瓶颈(BOSS)

FT12短网址资讯:架构师非常关注性能问题,上篇文章中我们介绍了京东的自动化压测体系 ForceBot,这篇文章来自 LinkedIn 的技术博客,介绍如何通过大数据算法来分析调用数据,自动定位性能瓶颈。本文由高可用架构翻译。背景我们 FT…

揭秘Google排名的205个因素(百度80%管用)完整版列表

揭秘Google排名的205个因素(百度80%管用)完整版列表

不少人都知道Google的搜索排名算法使用200多个因素,但具体是什么呢?除了Google的核心算法工程师,几乎没有人知道完整真相。而所谓的SEO技术,很多时候是分析、测试搜索获得的简单结论,有些优化方向是明确的,比如良好的用户体验、优质内…

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

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

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

每天坚持不懈的写软文,得到的几点心得感悟

每天坚持不懈的写软文,得到的几点心得感悟

夜深了,我喜欢这样宁静的夜,它能让人不用去想更多的事情,专注于做自己想做的事情,我认为是一种幸福的事情,拿着手机播放了今晚的《半夜听》节目,听这个节目已经有一段时间了,虽然每天只有那么短短的几分钟,但是那些字眼确实令我欲罢不能,听完几分钟的…

谁来取代站长之家和A5站长网

谁来取代站长之家和A5站长网

处于第一阶梯的站长类门户非站长之家(chinaz)和A5(站长网)莫属,根据alexa显示,chinaz和A5长期排名是100位和400位左右,可以说现在站长门户这个市场基本上被chinaz和短网址垄断。昨天读了牟长青的《挂羊头卖猪肉的站长…

O2O进入下半场,百度或携人工智能实现弯道超车?

近日,百度外卖副总裁陈锦晖宣布辞职的消息刷爆了互联网,百度外卖业务要出售给顺丰的消息也时有流出。正如美团CEO王兴所言,国内O2O行业已经进入了“下半场”。随着移动互联网人口红利减退,烧钱竞争所带来的粗放式增长已经告一段落。 实际上在今年第…

发表评论

访客

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