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

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

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

为了吸引你的目光,这些家具费尽心机

为了吸引你的目光,这些家具费尽心机

家具,不只是家中不可或缺的物件,还是我们居住空间中少不了的摆设,正因为如此,它们也有更多可以挖掘的创意性设计所在。设计师便对常见的家具做了一些不一样的改变和创新,让使用者和这些本无生命的家具之间,有了更多的连接。把书本“吊”在木架上颠覆你对…

聊聊加密那点事——PHP加密最佳实践

聊聊加密那点事——PHP加密最佳实践

1. 加密的目的加密不同于密码,加密是一个动作或者过程,其目的就是将一段明文信息(人类或机器可以直接读懂的信息)变为一段看上去没有任何意义的字符,必须通过事先约定的解密规则才能将信息转换回有意义的可读信息,通过加密可以防止非授权的信息窃取。…

短网址自定义功能的测试

测验首要分为两大部分, 功能性测验和非功能性测验。前次已经做了功能性测验的解说,(没阅读的请阅读《简单高效的短网址生成服务C#实现》)下面解说自界说短网址测验和非功能性测验,全面的测验过程,以确保ft12短网址的各项功能契合用户的需求。…

苦逼SEO如何实现自身价值的提升?

苦逼SEO如何实现自身价值的提升?

昨天收到一个读者的留言,说目前SEO发展越来越难做,SEOer越来越难生存,于是笔者就与这位朋友聊了起来,了解到他目前在一家企业做短网址,发展不是很好,每天累死累活,老板却认为没好好做事,多少苦逼SEO心里是哑巴吃黄莲的感觉?之前咨询这样的…

AI能让科学研究实现自动化吗?

科学进展受限于人类思考的速度,将其外包给人工智能或许能够改变这一切。撰文:Ahmed Alkhateeb翻译:张雪科学正陷于数据危机之中。去年,仅在生物医学领域就有超过120万篇新论文发表,这令同行评审的生物医学论文总数达到了2600万篇。…

发表评论

访客

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