Home Web Front-end JS Tutorial How to handle when Ajax opens a new window and is intercepted

How to handle when Ajax opens a new window and is intercepted

Apr 02, 2018 pm 05:00 PM
ajax how intercept

This time I will show you how to handle when Ajax opens a new window and is intercepted. What are the precautions when dealing with Ajax opening a new window and is intercepted? The following is a practical case, let's take a look.

Recently, when I was making a payment, I found that the payment window was intercepted by the browser when opening it. Baidu found out that it was because ajax was used to verify whether the payment could be made before opening the window, so it was not the user who actively triggered the opening of the ixin window and browsed The server thought this was not safe, so it intercepted it.

Solution 1

First open an empty new window, and then change the url of the new window. The specific code is

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("正在加载请稍后!");
  }
});
Copy after login

This implementation method has a drawback, that is, regardless of whether ajax is successful or not, the line of code var wd = window.open(); will be executed, so both success and failure will open a new window, unless it is closed after failure. But this user experience will be very bad, so I used the second method to achieve it.

Solution 2

Because ajax is asynchronous by default, it has high performance and good user experience, but it also leads to security issues , to make the browser think that popping up a new window is safe, all ajax before popping up a new window must be synchronized, the specific code is

$.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("正在加载请稍后!");
  }
});
Copy after login

I believe you have mastered the method after reading the case in this article, more exciting Please pay attention to other related articles on php Chinese website!

Recommended reading:

Based on Ajax technology to achieve non-refresh user login (with code)

AJAX implementation without refresh Log in

The above is the detailed content of How to handle when Ajax opens a new window and is intercepted. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the 403 error encountered by jQuery AJAX request How to solve the 403 error encountered by jQuery AJAX request Feb 20, 2024 am 10:07 AM

How to solve the 403 error encountered by jQuery AJAX request

How to solve jQuery AJAX request 403 error How to solve jQuery AJAX request 403 error Feb 19, 2024 pm 05:55 PM

How to solve jQuery AJAX request 403 error

How to get variables from PHP method using Ajax? How to get variables from PHP method using Ajax? Mar 09, 2024 pm 05:36 PM

How to get variables from PHP method using Ajax?

How to block advertising pop-ups in QQ browser How to block advertising pop-ups in QQ browser Jan 31, 2024 pm 06:00 PM

How to block advertising pop-ups in QQ browser

How to solve the problem of jQuery AJAX error 403? How to solve the problem of jQuery AJAX error 403? Feb 23, 2024 pm 04:27 PM

How to solve the problem of jQuery AJAX error 403?

PHP vs. Ajax: Solutions for creating dynamically loaded content PHP vs. Ajax: Solutions for creating dynamically loaded content Jun 06, 2024 pm 01:12 PM

PHP vs. Ajax: Solutions for creating dynamically loaded content

How to delete all strangers' messages in Kuaishou private messages? Can private messages from strangers be intercepted? How to delete all strangers' messages in Kuaishou private messages? Can private messages from strangers be intercepted? Mar 22, 2024 am 08:50 AM

How to delete all strangers' messages in Kuaishou private messages? Can private messages from strangers be intercepted?

Understanding Ajax Frameworks: Explore Five Common Frameworks Understanding Ajax Frameworks: Explore Five Common Frameworks Jan 26, 2024 am 09:28 AM

Understanding Ajax Frameworks: Explore Five Common Frameworks

See all articles