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

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

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

分享给朋友:

相关文章

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

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

红杉资本中国AI布局:已投资近30家,核心标准只有两个

红杉资本中国AI布局:已投资近30家,核心标准只有两个

“为什么我们持续看好并追加瓜子二手车的出资?是因为瓜子二手车能够经过买卖场景取得用户数据,并能对数据进行深度剖析学习,从而更好地改善消费者体会。”红杉资本我国基金合伙人计越说,瓜子二手车是红杉AI布局中一个典型事例。之所以说它是一个典型的事...

iPhone X ?来自消费未知的惊喜感

iPhone8的发布就像一个巨大的猜谜游戏,在过去的几个月里各路消息层出不穷,这一切也终将在当地时间9月12日揭晓。而在此之前,对我们来说,仅仅看到“苹果发布会”几个字便控制不住阅读的冲动。为什么我们对一个发布会如此心心念念?因为发布会是期...

暗网?No,你落伍了,它是“蜜罐”

暗网?No,你落伍了,它是“蜜罐”

最近发生在美国一个华人绑架事件把“暗网(Darknet或Dark Web)”带入到公众的视野,本文从技术角度分析暗网的工作原理和安全性。什么是暗网我们日常使用的互联网(Internet)被称为“明网”,与之对应的借助互联网而形成的“隐藏”的...

“艺网”成为首个获千万级Pre-A轮融资的短网址电商

无论是拍卖、租赁、社区、还是电商,互联网艺术品途径终极目的都是撬动C端用户花费。但不可否认的是,艺术品买卖商场现在仍然比花费晋级慢半拍,用“艺网”创始人朱彤的话来说,“让艺术品走向千家万户最少还需要两年”。2015年建立的“艺网”已经完成了...

短网址数据库InnoDB的快照读,到底和什么相关?

InnoDB是非常适合短网址业务的存储引擎,其多版本并发控制(Multi Version Concurrency Control, MVCC),快照读(Snapshot Read)机制,能够通过读取回滚段(rollback segment)...

发表评论

访客

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