Heim  >  Artikel  >  Web-Frontend  >  So vermeiden Sie, dass Sie beim Öffnen eines neuen Formulars mit Ajax-Rückruf vom Browser abgefangen werden

So vermeiden Sie, dass Sie beim Öffnen eines neuen Formulars mit Ajax-Rückruf vom Browser abgefangen werden

php中世界最好的语言
php中世界最好的语言Original
2018-04-04 15:40:241622Durchsuche

Dieses Mal zeige ich Ihnen, wie Sie das Abfangen durch den Browser beim Öffnen eines neuen Formulars mit Ajax-Rückruf vermeiden können. Welche Vorsichtsmaßnahmen gibt es? ? Hier ist der eigentliche Kampf. Schauen wir uns den Fall an.

Der Ajax-Rückruf öffnet ein neues Formular, um das Abfangen des Browsers zu verhindern. Tun Sie dies einfach!

Problemanalyse:

function click_fun(){ 
   window.open("www.baidu.com");//能打开 
  $.ajax({ 
    'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 
    'type': 'post', 
    'dataType': 'json', 
    'data': data, 
    success: function (data) { 
      window.open("www.baidu.com");//被拦截 
    }, 
    error:function(){ 
 
    } 
  }); 
}

Analyse:
Das Öffnen eines neuen Formulars kann nur durch Klicken auf das Ereignis erfolgen Wird innerhalb des Klickereignisses ausgelöst, wird das innerhalb der Rückruffunktion geöffnete Formular abgefangen und der Browser geht davon aus, dass es sich um Code wie Werbe-Popups handelt

Lösung 1:

function click_fun_new(){ 
  var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截 
  $.ajax({ 
    'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 
    'type': 'post', 
    'dataType': 'json', 
    'data': data, 
    success: function (data) { 
      tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径 
    }, 
    error:function(){ 
      tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体 
    } 
  }); 
}

Lösung 2:

function click_fun_new(){ 
  var flag = false; 
  $.ajax({ 
    'url': '${pageContext.request.contextPath}/activity/savePrizes.htm', 
    'type': 'post', 
    'dataType': 'json', 
    'data': data, 
    'async':false,//同步请求 
    success: function (data) { 
      $("#a").attr("href","www.baidu.com");//当回调的时候更改页面上或创建的某个a标签的href 
      flag = true;//更改标志 
    }, 
    error:function(){ 
       
    } 
  }); 
  if(flag){ 
    $("#a").click();//href属性更改后模拟点击 
  } 
}

Das Obige ist der Ajax-Rückruf Um ein neues Formular zu öffnen, um das Öffnen des Browsers zu verhindern, gibt es zwei Methoden zum Abfangen. Ich hoffe, dass dies für das Lernen aller hilfreich ist.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Jsonp löst das domänenübergreifende Problem von Ajax

Wie geht JSONP mit dem domänenübergreifenden Problem um? Zugriff von Ajax

Das obige ist der detaillierte Inhalt vonSo vermeiden Sie, dass Sie beim Öffnen eines neuen Formulars mit Ajax-Rückruf vom Browser abgefangen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn