亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

南阳市| 海晏县| 抚远县| 潞西市| 沙坪坝区| 独山县| 文成县| 临桂县| 金秀| 新乐市| 醴陵市| 沾益县| 扶风县| 竹北市| 广元市| 盐源县| 秭归县| 三门峡市| 余江县| 西平县| 平利县| 无棣县| 凤城市| 甘泉县| 永新县| 鄯善县| 信丰县| 韶关市| 广宗县| 沛县| 榕江县| 库伦旗| 弋阳县| 正安县| 庄浪县| 安吉县| 灵璧县| 青阳县| 江都市| 夏津县| 沭阳县|