2019独角兽企业重金招聘Python工程师标准>>>

问题剖析:

function click_fun(){ window.open("www.baidu.com");//能打开 $.ajax({ 'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 'type': 'post', 'dataType': 'json', 'data': data, success: function (data) { window.open("www.baidu.com");//被拦截 }, error:function(){ } });
}

分析:
打开新窗体只能在点击事件内触发,点击事件内的回调函数内打开窗体会被拦截,浏览器会认为是广告弹窗之类的代码

解决1:

function click_fun_new(){ var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截 $.ajax({ 'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 'type': 'post', 'dataType': 'json', 'data': data, success: function (data) { tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径 }, error:function(){ tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体 } });
}

解决2:

function click_fun_new(){ var flag = false; $.ajax({ 'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 'type': 'post', 'dataType': 'json', 'data': data, 'async':false,//同步请求 success: function (data) { $("#a").attr("href","www.baidu.com");//当回调的时候更改页面上或创建的某个a标签的href flag = true;//更改标志 }, error:function(){ } }); if(flag){ $("#a").click();//href属性更改后模拟点击 }
}

转载于:https://my.oschina.net/u/1054538/blog/1595657

ajax回调打开新窗体防止浏览器拦截方法相关推荐

  1. Ajax提交打开新窗口,浏览器拦截处理;以及跨域问题

    //主要是添加同步处理 $.ajax({url: "ashx/OrderHander.ashx?action=CheckRepeat",data: { "OrderId& ...

  2. ajax无法open,ajax中打开新页面使用window.open方法被拦截的解决方法

    $('.testA').unbind('click').bind('click',function(){ var result=""; $.ajax({ url:'http://l ...

  3. Response.Redirect 打开新窗体的两种方法

    普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location=' ...

  4. ajax打开新窗口被浏览器拦截的解决办法

    最近在做支付时发现打开支付窗口时被浏览器拦截了,百度了一下才发现是因为打开窗口前用ajax验证是否能支付,所以不是用户主动触发的打开ixin窗口,浏览器认为这样不安全,所以给拦截了. 解决办法一 先开 ...

  5. js 异步操作打开新页面被浏览器拦截的问题

    最近开发过程中 需要进行接口认证 才能打开新窗口的需求 代码如下 // getMatchBase(.....).then(// result => { // win.open('/matchDe ...

  6. window.open()打开新窗口被浏览器拦截

    原因:在浏览器的安全机制里面,非用户触发的window.open方法,是会被拦截的. 经过实际测试,Chrome.IE不会拦截,FireFox会拦截. //不会被拦截 $('#btn').click( ...

  7. window.open打开新窗口被浏览器拦截的处理方法

    一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.loca ...

  8. vue 路由跳转打开新窗口(被浏览器拦截)

    今天做了一个功能是点击按钮路由跳转打开新的窗口页面 第一种方法 <router-link target="_blank" :to="{path:'/FundMang ...

  9. 基于vue,解决打开新窗口被浏览器拦截的问题

    首先,我们先来说一下在什么情况下,新窗口会被阻截,以及阻截的原因. 当使用 window.open(url,"_blank")打开新窗口时,如果url是通过ajax从后台获取 到的 ...

最新文章

  1. @poj - 1509@ Glass Beads
  2. 2020大学计算机知到答案,2020年_知到_大学计算机(济南大学)_网课答案
  3. linux版azure应用服务,【应用服务 App Service】解决无法从Azure门户SSH登录问题
  4. Qt eventFilter实现信号与槽
  5. [转载] JAVA 堆栈 堆 方法区 静态区 final static 内存分配 详解
  6. Shiro 实战教程
  7. SpringBoot注解 @Configuration @PropertySource @ConfigurationProperties
  8. E. Mahmoud and Ehab and the function Codeforces Round #435 (Div. 2)
  9. linux删除目录下文件的几种方法
  10. 逆向分析商业软件 010 Editor 及注册机编写
  11. 人的声音是可以通过训练而改变的吗?
  12. word文档解除编辑受限(忘记密码)
  13. WordPress系列教程(二)----WordPress基本使用和常用设置
  14. 单片机c语言片外寻址指令,51手记之寄存器寻址篇
  15. pytorch操作基礎(二)——基礎
  16. The Top 50 ‘Pictures of the Day’ for 2011
  17. 靶机16 GROTESQUE: 2
  18. ETCD数据库源码分析——Cluster membership changes日志
  19. yyk冷热启动耗时.bat
  20. 复合效应 达伦哈迪_哈迪·哈里里(Hadi Hariri):“我们需要研究新事物”

热门文章

  1. linux mysql udf打包_Linux下MySQL 5.1编写UDF 并运行(Install)获取当前时间的毫秒数...
  2. 细细讲述Java技术开发的那些不为人知的规则
  3. Django-你想知道的都在这里
  4. MPU6050开发 -- 卡尔曼滤波(转)
  5. 1048 Find Coins
  6. Hash冲突的解决--暴雪的Hash算法
  7. (原创)让mongodb的secondary支持读操作
  8. 在移动端项目中使用vconsole
  9. nyoj-20-吝啬的国度(深搜)
  10. 超炫的iphone应用UI/UX设计赏析