中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax打開新窗口被瀏覽器攔截怎么辦

發布時間:2021-07-13 13:35:34 來源:億速云 閱讀:167 作者:小新 欄目:web開發

小編給大家分享一下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("正在加載請稍后!");
  }
});

以上是“Ajax打開新窗口被瀏覽器攔截怎么辦”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝山区| 红河县| 苍南县| 镇赉县| 高陵县| 高台县| 阳谷县| 云龙县| 北流市| 建阳市| 湟源县| 同江市| 绵阳市| 南宫市| 监利县| 瓮安县| 沈阳市| 梁山县| 定边县| 门头沟区| 扬州市| 全州县| 岐山县| 宽甸| 土默特左旗| 龙门县| 象州县| 弥渡县| 肇庆市| 原阳县| 汕头市| 宁化县| 抚松县| 镇原县| 监利县| 保定市| 景泰县| 邻水| 武汉市| 阜平县| 屯昌县|