≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > AJAX

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

人气:823 时间:2019-04-07

这篇文章主要为大家详细介绍了Ajax打开新窗口被浏览器拦截的两种解决办法,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

最近在做支付时发现打开支付窗口时被浏览器拦截了,百度了一下才发现是因为打开窗口前用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("正在加载请稍后!");
  }
});

这种实现方式有个弊端,就是不管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("正在加载请稍后!");
  }
});

原文链接:http://blog.csdn.net/qukaiwei/article/details/54089969

(四海网 q1010.com)

本文来自:http://www.q1010.com/178/3683-0.html

注:关于Ajax打开新窗口被浏览器拦截的两种解决办法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:AJAX

您可能感兴趣的文章

  • 用ajax传递json到前台中文出现问号乱码问题的解决办法
  • AJAX用于判定用户是否注册
  • ajax实现异步文件或图片上传功能
  • 完美解决ajax跨域请求下parsererror的错误
  • 基于Ajax技术实现无刷新用户登录功能
  • Ajax与mysql数据交互制作留言板功能
  • Ajax请求中的async:false和async:true的差异
  • 使用Ajax方法实现Form表单的提交及注意事项
  • 使用vue框架 Ajax获取数据列表并用BootStrap显示出来
  • vue2 前后端分离项目ajax跨域session问题解决方法
上一篇:ajax无刷新评论功能
下一篇:Ajax请求中的async:false和async:true的差异
热门文章
  • 完美解决ajax跨域请求下parsererror的错误
  • 用ajax传递json到前台中文出现问号乱码问题的解决办法
  • AJAX 实现页面内跳转的简单例子
  • AJAX 实现页面跳转简单示例
  • Ajax打开新窗口被浏览器拦截的两种解决办法
  • Ajax修改页面数据信息的实现方式
  • Ajax异步无刷新修改数据 - 传值的简单示例
  • AJAX实例:用callback函数的AJAX实例
  • AJAX实例:用AJAX从数据库返回数据
  • AJAX实例:用AJAX从ASP 文件返回数据
  • 最新文章
    • 用ajax传递json到前台中文出现问号乱码问题的解决办法
    • AJAX用于判定用户是否注册
    • ajax实现异步文件或图片上传功能
    • Ajax打开新窗口被浏览器拦截的两种解决办法
    • Ajax验证用户名或昵称是否已被注册
    • Ajax动态为下拉列表添加数据的实现方法
    • Ajax的特性及乱码问题
    • ajax提交手机号去数据库验证并返回状态值
    • 完美解决ajax跨域请求下parsererror的错误
    • 基于Ajax技术实现无刷新用户登录功能

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。