Hier ist, wann Sie GET und POST für Ajax Server-Anfragen verwenden sollten

Wenn Sie mit Ajax (asynchrones JavaScript und XML) auf den Server zugreifen, ohne die Webseite neu zu laden, haben Sie zwei Möglichkeiten, wie Sie die Informationen für die Anforderung an den Server übergeben möchten: GET oder POST.

Dies sind dieselben zwei Optionen, die Sie haben, wenn Sie Anforderungen zum Laden einer neuen Seite an den Server übergeben, jedoch mit zwei Unterschieden. Das erste ist, dass Sie nur eine kleine Information anstelle einer gesamten Webseite anfordern. Der zweite und auffälligste Unterschied besteht darin, dass Ihre Besucher keinen Unterschied bemerken, wenn die Ajax-Anforderung in der Adressleiste nicht angezeigt wird.

Mit GET getätigte Aufrufe machen die Felder und ihre Werte an keiner Stelle verfügbar, die mit POST auch nicht verfügbar ist, wenn der Aufruf von Ajax aus erfolgt.

Was Sie nicht tun sollten

Wie sollten wir also die Wahl treffen, welche dieser beiden Alternativen verwendet werden soll??

Ein Fehler, den einige Anfänger machen könnten, besteht darin, GET für die meisten ihrer Anrufe zu verwenden, nur weil es für die beiden einfacher ist, Code zu erstellen. Der auffälligste Unterschied zwischen GET- und POST-Aufrufen in Ajax besteht darin, dass bei GET-Aufrufen die Datenmenge immer noch so begrenzt ist, wie beim Anfordern eines neuen Seitenladevorgangs.

Der einzige Unterschied besteht darin, dass Sie, da Sie nur eine kleine Datenmenge mit einer Ajax-Anfrage verarbeiten (oder zumindest so verwenden sollten), mit weitaus geringerer Wahrscheinlichkeit von Ajax aus auf diese Längenbeschränkung stoßen, als Sie es mit Ajax tun würden Laden einer kompletten Webseite. Ein Anfänger kann mithilfe von POST-Anforderungen für die wenigen Fälle reservieren, in denen er mehr Informationen übermitteln muss, als die GET-Methode zulässt.

Die beste Lösung, wenn Sie so viele Daten übermitteln müssen, besteht darin, mehrere Ajax-Aufrufe zu tätigen und gleichzeitig einige Informationen zu übergeben. Wenn Sie in einem Ajax-Aufruf große Datenmengen übermitteln, ist es wahrscheinlich besser, die gesamte Seite neu zu laden, da sich die Verarbeitungszeit bei großen Datenmengen nicht wesentlich unterscheidet.

Wenn die zu übergebende Datenmenge kein guter Grund für die Wahl zwischen GET und POST ist, wie sollten wir uns dann entscheiden?

Diese beiden Methoden wurden in der Tat für ganz unterschiedliche Zwecke entwickelt, und die Unterschiede in der Funktionsweise sind teilweise auf die unterschiedlichen Verwendungszwecke zurückzuführen. Dies gilt nicht nur für die Verwendung von GET und POST von Ajax, sondern überall dort, wo diese Methoden eingesetzt werden können.

Der Zweck von GET und POST

GET wird verwendet, wie der Name schon sagt: to bekommen Information. Es soll verwendet werden, wenn Sie Informationen lesen. Browser speichern das Ergebnis einer GET-Anfrage im Cache. Wenn dieselbe GET-Anfrage erneut gestellt wird, wird das zwischengespeicherte Ergebnis angezeigt, anstatt die gesamte Anfrage erneut auszuführen.

Dies ist kein Fehler in der Browser-Verarbeitung. Es wurde absichtlich so entwickelt, dass GET-Aufrufe effizienter werden. Ein GET-Aufruf ruft nur die Informationen ab. Es ist nicht dazu gedacht, Informationen auf dem Server zu ändern. Aus diesem Grund sollte eine erneute Anforderung der Daten dieselben Ergebnisse liefern.

Die POST-Methode ist für Entsendung oder Aktualisieren von Informationen auf dem Server. Es wird erwartet, dass diese Art von Aufrufen die Daten ändert, weshalb sich die Ergebnisse von zwei identischen POST-Aufrufen möglicherweise vollständig unterscheiden. Die Anfangswerte vor dem zweiten POST-Aufruf unterscheiden sich von den Werten vor dem ersten, da beim ersten Aufruf mindestens einige dieser Werte aktualisiert wurden. Ein POST-Aufruf erhält daher immer die Antwort vom Server, anstatt eine zwischengespeicherte Kopie der vorherigen Antwort aufzubewahren.

Wie wählt man GET oder POST

Anstatt basierend auf der Datenmenge, die Sie in Ihrem Ajax-Anruf übergeben, zwischen GET und POST zu wählen, sollten Sie die Auswahl basierend auf den tatsächlichen Aktivitäten des Ajax-Anrufs treffen.

Wenn der Aufruf Daten vom Server abrufen soll, verwenden Sie GET. Wenn sich der abzurufende Wert aufgrund anderer Prozesse, die ihn aktualisieren, voraussichtlich im Laufe der Zeit ändern wird, fügen Sie einen aktuellen Zeitparameter zu dem hinzu, was Sie in Ihrem GET-Aufruf übergeben, damit die späteren Aufrufe keine zuvor zwischengespeicherte Kopie des Ergebnisses verwenden das ist nicht mehr richtig.

Verwenden Sie POST, wenn bei Ihrem Anruf überhaupt Daten auf den Server geschrieben werden sollen.