84 Stimmen

GET vs. POST in Ajax

Was ist der Unterschied zwischen GET y POST para Ajax Anfragen?

Ich sehe keinen Unterschied zwischen diesen beiden, außer dass ich bei der Verwendung von GET Die Parameter werden in der URL gesendet, was für mich keinen wirklichen Unterschied macht, da alle Anfragen im Hintergrund erfolgen und der Benutzer keinen Unterschied bemerkt.

bearbeiten: Was sind PUT y DELETE Methoden verwendet?

9 Stimmen

Übrigens gibt es neben den POST-Anfragen auch PUT- und DELETE-Anfragen. Nach diesen sollten Sie ebenfalls fragen.

1 Stimmen

Für zukünftige Leser: hier ist eine verwandte Frage von Fooker vor einem Jahr .

0 Stimmen

Das ist wichtig, vor allem, wenn Sie sensible Daten versenden.

141voto

crb Punkte 8099

GET ist dafür gedacht, Daten vom Server abzurufen. POST (und die weniger bekannten PUT und DELETE) sind für die Änderung von Daten auf dem Server gedacht.

Eine GET-Anfrage sollte niemals dazu führen, dass Daten aus einer Anwendung entfernt werden. Wenn Sie einen Link haben, auf den Sie mit einer GET-Anfrage klicken können, um Daten zu entfernen, dann könnte Google, das Ihre Website spidert, auf alle Ihre "Löschen"-Links klicken.

Die kanonische Antwort lautet aquí die die HTML 2.0-Spezifikation zitiert:

Ist die Bearbeitung eines Formulars idempotent (d. h. sie hat keine dauerhafte beobachtbare Auswirkung auf den Zustand der Welt), dann sollte die Formularmethode GET SEIN. Viele Datenbankabfragen haben keine sichtbare Nebeneffekte und sind ideale Anwendungen von Abfrageformularen.

Wenn der Dienst, der mit der Verarbeitung eines Formulars verbunden ist, Nebeneffekte hat (zum Beispiel die Änderung einer Datenbank oder Abonnement eines Dienst), sollte die Methode POST sein.

Für Ihren AJAX-Aufruf müssen Sie die von Ihrem Server unterstützte Methode verwenden. Sie sollten Ihren Server immer so gestalten, dass Operationen, die Daten verändern, durch POST/PUT/DELETE aufgerufen werden. In anderen Kommentaren finden Sie Links zu REST, das im Allgemeinen C/R/U/D auf "POST oder PUT"(Create)/GET(Read)/PUT(Update)/DELETE(Delete) abbildet.

10 Stimmen

+1: Wesentliche Definition von GET - Idempotenz. Alle Änderungen müssen mit POST, PUT und DELETE erfolgen.

0 Stimmen

Mein Server gibt einen 403-Fehler aus, wenn ich das Formular mit post abschicke, get funktioniert. Ich denke, das liegt an der Serverkonfiguration. Ich habe keinen Zugriff auf den Server. Wie kann man das Problem umgehen?

0 Stimmen

Ich stimme mit @S.Lott überein. Sehr schöne und vollständige Definition der GET-Methode. /Klatschen Kumpel.

28voto

Ryan Smith Punkte 8334

Wenn Sie große Datenmengen oder sensible Daten über HTTPS senden, sollten Sie POST verwenden. Wenn es sich nur um einen einfachen Parameter handelt, würde ich GET verwenden.

GET-Anfragen haben eine Begrenzung der Datenmenge, die gesendet werden kann. Ich habe die genaue Zahl vergessen, aber das kann zu Problemen führen, wenn Sie etwas Umfangreiches senden.

Der Unterschied zwischen GET und POST besteht im Wesentlichen darin, dass bei einer GET-Anforderung die Parameter in der URL übergeben werden, während sie bei einer POST-Anforderung in den Nachrichtentext aufgenommen werden.

2 Stimmen

Ja, es ist wichtig, darauf hinzuweisen, dass es Größenbeschränkungen für GET gibt und dass diese je nach Client- und Server-Software unterschiedlich sind.

19voto

Brian Punkte 4951

Ob es sich um AJAX handelt oder nicht, ist irrelevant. Es geht um die Aktion, die Sie durchführen. Ich würde empfehlen, die Prinzipien von REST . Diese haben weitere Bestimmungen für die Aktualisierung, Löschung usw...

4voto

Sergey Punkte 2876

GET-Anfragen lassen sich leichter für CSRF-Angriffe (Cross Site Request Forgery) ausnutzen. Gefälschte POST-Anfragen erfordern nämlich, dass Javascript auf der Benutzerseite aktiviert ist, während gefälschte GET-Anfragen nur mit img- und Script-Tags möglich sind.

4voto

Subroto Biswas Punkte 467

Beide werden verwendet, um Daten zu senden und eine Antwort auf diese Daten zu erhalten.

GET: Abrufen von auf dem Server gespeicherten Informationen. D.h. Suchen, Tweets, Personeninformationen. Wenn Sie Informationen senden möchten, senden Sie die Anfrage mit process.php?name=subroto Es werden also grundsätzlich Informationen über eine Url gesendet. Url kann nicht mehr als 2083 Zeichen verarbeiten. So für Blog-Post können Sie daran erinnern, es ist nicht möglich?

POST: Post macht dasselbe wie get. Benutzerregistrierung, Benutzeranmeldung, Big Data senden, Blog Post. Wenn Sie sichere Informationen senden müssen, dann verwenden Sie "Post" oder "Big Data", da diese nicht über eine URL gesendet werden.

AJAX: $.get() und $.post() enthalten Funktionen, die Teilmengen von $.ajax() sind. Es hat viel Konfiguration.

$.get ()-Methode, die eine Art Kurzform für $.Ajax () ist. Wenn Sie $.get () verwenden, übergeben Sie statt eines Objekts Argumente. Sie benötigen mindestens die ersten beiden Argumente, d.h. die URL der abzurufenden Datei (z.B. "test.txt") und einen Erfolgs-Callback.

Zusammenfassung:

$.get( url [, data ] [, success ] [, dataType ] )
$.post( url [, data ] [, success ] [, dataType ] ) // for sending secure or Large information
$.ajax( url [, settings ] )  // More Configaration

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X