Beim Ausführen eines Ajax-Aufrufs mit jQuery kann die Begegnung mit einer Weiterleitungsanweisung vom Server zu unbeabsichtigten Folgen führen . Anstelle der erwarteten Ersetzung eines div-Elements kann es sein, dass der Benutzer unfreiwillig auf eine Anmeldeseite starrt.
Die Lösung für dieses Dilemma besteht, wie in einem aufschlussreichen Beitrag vorgeschlagen, darin, den HTTP-Statuscode zu optimieren 278 sein. Dadurch wird verhindert, dass der Browser Weiterleitungen automatisch verarbeitet. Für einen robusteren Ansatz sollten Sie jedoch die Verwendung von JSON in Betracht ziehen.
In diesem Szenario behält der Ajax-Aufruf unabhängig von der Antwort den Statuscode 200 bei. Der Antworttext enthält ein auf dem Server erstelltes JSON-Objekt. Dieses Objekt ermöglicht es dem clientseitigen JavaScript, die geeignete Aktion basierend auf seinem Inhalt zu bestimmen.
Die Implementierung dieses Ansatzes ahmt die folgende Logik nach:
$.ajax({ type: "POST", url: reqUrl, data: reqBody, dataType: "json", success: function(data, textStatus) { if (data.redirect) { window.location.href = data.redirect; } else { $("#myform").replaceWith(data.form); } } });
Das auf dem Server erstellte Datenobjekt, besteht aus zwei Schlüsselkomponenten: data.redirect und data.form. Diese Methode bietet mehr Flexibilität und Klarheit bei der Bearbeitung von Umleitungsanfragen während Ajax-Aufrufen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Serverumleitungen in jQuery-Ajax-Aufrufen ohne unerwartetes Verhalten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!