ホームページ  >  記事  >  ウェブフロントエンド  >  Ajax が新しいウィンドウを開いてインターセプトされた場合の対処方法

Ajax が新しいウィンドウを開いてインターセプトされた場合の対処方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-02 17:00:301289ブラウズ

今回は、Ajax が新しいウィンドウを開いてインターセプトされた場合の対処方法を説明します。Ajax が新しいウィンドウを開いてインターセプトされた場合の注意事項について、実際のケースを見てみましょう。

最近、支払いをしているときに、支払いウィンドウを開くときにブラウザによってインターセプトされることがわかりました。それは、ウィンドウを開く前に支払いができるかどうかを確認するためにajaxが使用されていたためであることがわかりました。ユーザーが ixin ウィンドウを開くよう積極的にトリガーしなかったので、ブラウザーはこれが不適切であると判断し、インターセプトされました。

解決策 1

まず空の新しいウィンドウを開き、次に新しいウィンドウの 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(); このコード行は、失敗後に閉じない限り、新しいウィンドウを開きます。 2 番目の実装方法。

解決策 2

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("正在加载请稍后!");
  }
});
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、他の関連記事に注目してください。 PHP中国語ウェブサイトです!

推奨読書:

Ajax テクノロジーに基づいて非リフレッシュ ユーザー ログインを実現する (コード付き)


AJAX は非リフレッシュ ログインを実装します

以上がAjax が新しいウィンドウを開いてインターセプトされた場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。