• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >AJAX > Ajax打开新窗口被浏览器拦截的两种解决办法

Ajax打开新窗口被浏览器拦截的两种解决办法

作者:qukaiwei 字体:[增加 减小] 来源:互联网 时间:2017-05-11

qukaiwei通过本文主要向大家介绍了Ajax打开新窗口被浏览器拦截的两种解决办法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

解决办法一

先开始打开一个空的新窗口,然后改变新窗口的url,具体代码为

var wd = window.open();
$.ajax({
  type: "POST",
  dataType: "json",
  url: URL,
  data: {orderNo:orderNo},
  success: function(data) {
    if(data.status=='success'){
      wd.location.href = 'http://www.baidu.com';
    }else{ 
      alert('订单不能支付!'); 
    }
  },error: function(data) {
    alert("正在加载请稍后!");
  }
});
</div>

这种实现方式有个弊端,就是不管ajax有没有成功,都会执行 var wd = window.open();这行代码,所以成功和失败都会打开一个新窗口,除非在失败后进行关闭,但这样用户体验会非常不好,所以我用的第二种方式去实现的。

解决办法二

因为ajax是默认是异步的,这样性能高,用户体验好,但这也导致了安全问题,要让浏览器认为弹出新窗口是安全的,必须让弹新窗口之前所有的ajax是同步的,具体代码为

$.ajax({
  type: "POST",
  dataType: "json",
  url: URL,
  async: false,//同步请求
  data: {orderNo:orderNo},
  success: function(data) {
     if(data.status=='success'){
       window.open("www.baidu.com");
     }else{
       alert('订单不能支付!');
     }
  },
  error: function(data) {
    alert("正在加载请稍后!");
  }
});
</div>

以上所述是小编给大家介绍的Ajax打开新窗口被浏览器拦截的两种解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11Ajax获取页面被缓存的解决方法
  • 2017-05-11基于Ajax技术实现文件上传带进度条
  • 2017-05-11用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)
  • 2017-05-11Ajax()方法如何与后台交互
  • 2017-05-11springmvc 发送ajax出现中文乱码的解决方法汇总
  • 2017-05-11ajax响应json字符串和json数组的实例(详解)
  • 2017-05-11浅谈Ajax相关及其优缺点
  • 2017-05-11AJAX技术框架及开发工具
  • 2017-05-11SpringMVC环境下实现的Ajax异步请求JSON格式数据
  • 2017-05-11Ajax简单的异步交互及Ajax原生编写

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • AJAX跳转路径代码
    • Ajax开始准备篇
    • 浅析AJAX乱码及错误解决方案
    • ajax实现登录功能
    • django使用ajax post数据出现403错误如何解决
    • Ajax中post方法直接返回以0开头数字出错问题分析
    • Ajax实现文件下载
    • Ajax异步(请求)提交类 支持跨域
    • 基于h5 ajax实现手机定位(demo)
    • 零基础学习AJAX之AJAX框架

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有