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 innerhalb eines Klickereignisses ausgelöst werden innerhalb der Rückruffunktion geöffnet werden, werden 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属性更改后模拟点击 } }
Die oben genannten Möglichkeiten sind zwei Möglichkeiten, ein neues Formular mit Ajax-Rückruf zu öffnen, um ein Abfangen durch den Browser zu verhindern nützlich für das Lernen aller.
Weitere Ajax-Rückrufe zum Öffnen neuer Formulare und wirksame Methoden zum Verhindern des Abfangens des Browsers finden Sie auf der chinesischen PHP-Website für verwandte Artikel!