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

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

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

分享给朋友:

相关文章

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

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

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

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

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

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

消费者变成“智”人,供应链要变成“人工”智能

消费者变成“智”人,供应链要变成“人工”智能

[ ft12短网址导读 ] 智能供应链包含:①智能预测;②智能商品;③智能定价;④智能库存;⑤科学地分配订单生产路径及快递安排;⑥基于模式识别等技术的风险控制系统,及时预警订单的风险级别等。图片来自“123rf.com.cn”【编…

那个卖了房子去大理的姑娘,4个月以后又回来了……

那个卖了房子去大理的姑娘,4个月以后又回来了……

一、那个卖了房子去大理的姑娘,4个月以后又回来了……也许,我们每个人的内心深处都有一个梦:到一个安静美好的小地方,开一家小店,就这么慢悠悠地晃过这一生……不过,你真的确定这些是你想要的吗?1我一个女文青朋友年前卖了苏州的房子,去云南大理追求…

如何在一个月内,低成本获取前1000个高质量种子用户?

【来源丨人人都是产品经理】【编辑丨善小花】 要钱没钱,要资源没资源,想到起步获取种子用户就头大?辛辛苦苦熬夜写出的内容没人看,拉不来一个用户?拉来的用户只想褥羊毛不会反馈贡献,羊毛褥完就跑?眼看有上千号种子用户,但是却没有几个能够…

从网吧到网咖:80后男生的社交情怀

从网吧到网咖:80后男生的社交情怀

网鱼网咖的电脑区也和传统网吧大相径庭,采取类似阶梯教室的环状布局,摆放清一色的苹果一体机。除了从包房中不时传出“别送别送”(注:意思是告诫队友别送死)的叫声和激动的呼喊声,工作日时间的大厅中并没什么人,穿着印有网鱼logo白衬衫店员时不时驻…

发表评论

访客

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