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

发布时间 - 2026-01-10 22:19:16    点击率:

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

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


# ajax  # 打开新窗口被拦截  # Ajax请求响应中用window.open打开新窗口被拦截的解决方法  # Ajax请求成功后打开新窗口地址  # ajax怎么打开新窗口具体如何实现  # 解决办法  # 小编  # 正在加载  # 请稍后  # 是因为  # 有个  # 在此  # 两种  # 这也  # 我用  # 给大家  # 才发现  # 弹出  # 要让  # 所述  # 第二种  # 不安全  # 是否能  # 给我留言  # 感谢大家 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何在新浪SAE免费搭建个人博客?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel如何配置任务调度?(Cron Job示例)  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel如何使用Vite进行前端资源打包?(配置示例)  android nfc常用标签读取总结  如何在阿里云购买域名并搭建网站?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  如何快速搭建虚拟主机网站?新手必看指南  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  高性能网站服务器配置指南:安全稳定与高效建站核心方案  zabbix利用python脚本发送报警邮件的方法  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  js实现获取鼠标当前的位置  Python3.6正式版新特性预览  北京的网站制作公司有哪些,哪个视频网站最好?  如何快速上传自定义模板至建站之星?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何配置和使用缓存?(Redis代码示例)  高防服务器租用首荐平台,企业级优惠套餐快速部署  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  JavaScript Ajax实现异步通信  高防服务器租用指南:配置选择与快速部署攻略  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  如何快速完成中国万网建站详细流程?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Bootstrap整体框架之JavaScript插件架构  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在阿里云完成域名注册与建站?  python中快速进行多个字符替换的方法小结  微信小程序 配置文件详细介绍  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  利用python获取某年中每个月的第一天和最后一天  实现点击下箭头变上箭头来回切换的两种方法【推荐】