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

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

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

分享给朋友:

相关文章

支付宝官方曝光“刷脸支付”系统  刷脸的时代即将来临

支付宝官方曝光“刷脸支付”系统 刷脸的时代即将来临

昨天上午短网址资讯报道了支付宝“刷脸支付”功用曝光的音讯,疑似呈现了支付宝刷脸支付终端机,网友们纷繁表示“靠脸吃饭”时期要来了。如今支付宝官方向IT之家确认,这项“刷脸支付”功用行将上线。在视频中显现,一位测试者不用手机、不输入账号,仅靠刷...

编程语言的动静之争:Clojure太灵活,我们该如何驾驭它?

编程语言的动静之争:Clojure太灵活,我们该如何驾驭它?

作者|FT12短网址 编辑|短链接 编程语言的圣战,除了语言种类之分,也有动静门派之别。我们写着静态语言往往想着动态语言的灵活,写着动态语言又容易想着静态语言的稳定和可靠。常听到有人说,Clojure 确实...

FT12短网址解读阿里Q4财报:将增加短网址投入成本

阿里巴巴周五收涨,盘中股价创历史记录。公司周四发布最新财报,财报显示,阿里巴巴集团第四财季收入为385.79亿元人民币,同比增加60%;阿里中心电商事务收入同比增加47%,运营赢利达165亿元;包括阿里云以及数字媒体和文娱事务等新式事务收入...

深入剖析nginx时间缓存

深入剖析nginx时间缓存

本文适合对nginx实现原理比较感兴趣的同学阅读,需要具备一定的服务端编程知识。一、背景在服务器开发领域,时间的准确度关系到系统能否正常运行,尤其是当系统中存在超时事件需要处理时。但是系统时间的获取需要一次昂贵的系统调用,作为一款成熟的服务...

小企业面对618京东淘宝“二选一” 有关部门能管些啥?

小型的电商渠道们现在依然着上演京东和淘宝“二选一”这出戏。“从法理上讲,工商局的规矩实际上已归于行政手法干涉司法的情形。换句话讲,这个规矩的意思是,你假如违反了法令,会遭到工商层面的行政赏罚。但你很难把618、双11这种临时性促销节、短期商...

MySQL大表删除解决方案

1. 表删除问题汇总mysql如何删除表删除大表如何优化、解决2. 删除表原理与优化删除表原理上分为2部分:buffer pool页面清除过程。在删除表的时候,Innodb 会将文件在buffer pool中对应的页面清除。对于删除表的页面...

发表评论

访客

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