Dieser Artikel dient hauptsächlich dazu, mit Ihnen zu teilen. Als ich kürzlich eine Zahlung durchführte, stellte ich fest, dass der Browser beim Öffnen das Zahlungsfenster blockierte, weil Ajax zur Überprüfung der Zahlung verwendet wurde konnte vor dem Öffnen des Fensters vorgenommen werden, sodass der Benutzer das Öffnen des ixin-Fensters nicht aktiv auslöste. Der Browser hielt dies für unsicher und blockierte es.
Lösung 1
Öffnen Sie zuerst ein leeres neues Fenster und ändern Sie dann die URL des neuen Fensters. Der spezifische Code lautet
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("正在加载请稍后!"); } });
Diese Implementierungsmethode hat Nachteile. Das heißt, unabhängig davon, ob Ajax erfolgreich ist oder nicht, wird die Codezeile var wd = window.open(); ausgeführt, sodass sowohl bei Erfolg als auch bei Misserfolg ein neues Fenster geöffnet wird, es sei denn, es wird nach einem Fehler geschlossen, aber dieser Benutzer Die Erfahrung wird sehr schlecht sein, also habe ich den zweiten Weg verwendet, um dies zu erreichen.
Lösung 2
Da Ajax standardmäßig asynchron ist, was eine hohe Leistung und ein gutes Benutzererlebnis bietet, aber auch zu Sicherheitsproblemen führt, müssen Sie den Browser dazu bringen, zu denken, dass ein neues Popup angezeigt wird Fenster ist sicher. Alle Ajax-Dateien müssen synchronisiert werden, bevor ein neues Fenster geöffnet wird. Der spezifische Code lautet:
$.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-Rückruf zum Öffnen eines neuen Formulars Verhindern Sie das Abfangen des Browsers. Effektive Methode
iframe-Cross-Site-Blockierung durch Browser
JS-Code, um festzustellen, ob Webwerbung durch Browser_Javascript-Fähigkeiten blockiert und gefiltert wird
Das obige ist der detaillierte Inhalt vonZwei Lösungen dafür, dass Ajax ein neues Fenster öffnet und vom Browser abgefangen wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!