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

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

www.ft12.com9年前 (2017-07-29)短网址资讯2627
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短网址 编辑|短链接 未来生活一定是智能的,科幻小说里曾设想过的场景正一步步变成现实。在这个不可逆转的技术发展趋势里,智能音箱扮演的会是怎样的角色?现阶段的智能音箱及其背后的核心技术发展到了哪一步? 1 写...

一场官司耗费300万美元 出口侵权咋避免?

【FT12短网址】在美国,知识产权很受重视。若一个出口至美国的公司要打一场商标或专利侵权官司,费用也许到达160-300万美金。而其商品商标或专利被投诉侵权成功的话,则直接会面对丢掉美国商场的危险。因而,跨境电商公司要想深耕美国商场,需要加...

内容电商的时代 看同路大叔怎样下这盘棋

内容电商的时代 看同路大叔怎样下这盘棋

【ft12短链接网讯】同路大叔——这个靠星座吐槽发家的网红IP,在新浪微博上具有超越1210万名粉丝,微信推送音讯简直能做到条条“十万+”。这个坐拥无穷粉丝集体的自媒体,本来早就走上了内容电商变现的路途。现在同路大叔开设了天猫官方旗舰店,具...

花式共享还是变相租赁,共享经济下一步怎么走?

共享经济概念持续火热前提下,生活中的很多物品纷纷带着“共享”的帽子进局。比如共享篮球、共享雨伞、共享充电宝等产品纷纷面世,日前,共享篮球平台“猪了个球”宣布完成千万级Pre-A融资;共享充电宝“街电”获得聚美优品3亿元的投资;“小电”获得B...

FT12短网址资讯:Windows系统补丁怎么打才最合适

FT12短网址资讯:Windows系统补丁怎么打才最合适

近期在全球爆发的WannaCry比特币勒索病毒,重新让用户意识到了Windows系统打补丁的重要性。我个人在很早的时候就非常看重打补丁的意义。可是在这次勒索病毒爆发之前,国内绝大多数用户的看法无非就是这些:不要打补丁,只会越打越卡。Win8...

从代码层面优化系统性能的解决方案

从代码层面优化系统性能的解决方案

我们以前看到的很多架构变迁或者演进方面的文章大多都是针对架构方面的介绍,很少有针对代码级别的性能优化介绍。本文将针对一些代码细节方面的东西进行介绍,欢迎大家吐槽以及提建议。 写在前面 在 上一篇 我们主要介...

发表评论

访客

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