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

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

www.ft12.com9年前 (2017-07-29)短网址资讯1595
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技术,很多时候是分析、测试搜索获得的简单结论,有些优化方向是明确的,比如良好的用户体验、优质内…

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

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

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

自媒体时代"REO"将完全取代SEO

自媒体时代"REO"将完全取代SEO

摘要:近两年来,伴随着BAT纷繁涌入自媒体平台,自媒体发展可谓迎来爆发。自媒体平台火爆起来是从今日头条异军突起而引发的,它是一款基于数据挖掘的推荐引擎商品,它为用户推荐有价值的、个性化的信息,提供连接人与信息的新型服务,是国内移动互联网领域…

【官方说法】只需两步,正确识别百度蜘蛛

【官方说法】只需两步,正确识别百度蜘蛛

经常听到站长们问,百度蜘蛛是什么?最近百度蜘蛛来的太频繁服务器抓爆了,最近百度蜘蛛都不来了怎么办,还有很多站点想得到百度蜘蛛的IP段,想把IP加入白名单,但IP不固定,我们无法对外公布。那怎么才能识别正确的百度蜘蛛呢?来来来,以短网址站为例…

AppStore算法再次升级,运营如何在ASO中破冰?

AppStore算法再次升级,运营如何在ASO中破冰?

作者:刘兴时史上最严厉的AppStore算法来了,黑色5月一点都不夸张!近段时间,笔者发现移动互联网圈里做运营推广的朋友挺抓狂的,大家都在吐槽AppStore,吐槽点集中在“最近的评论都被AppStore删除了,ASO真的没法做了”史上最严…

发表评论

访客

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