Unterschied zwischen jquery.post und jquery.get?

8

Was ist der Unterschied zwischen diesen beiden AJAX-Aufrufen und warum sollte ich wählen, ob ich das asp.net mvc-Framework verwende?

    
Shawn Mclean 03.03.2010, 21:26
quelle

6 Antworten

10

Man benutzt POST und man benutzt GET.

Soweit das, wofür sie bestimmt sind - der einzige wirkliche technische Unterschied (bitte korrigieren Sie diesen Beitrag, wenn ich falsch liege) ist, dass GET eine viel kürzere Grenze für die Abfrage-Zeichenkette hat. In der Praxis ist GET für das Abrufen von etwas vom Server gedacht. Ein GET-Aufruf sollte keine Nebenwirkungen auf dem Server verursachen. POST ist, wenn Sie beabsichtigen, etwas auf dem Server zu senden und etwas damit machen zu lassen.

edit: Das Wort, nach dem ich gesucht habe, um GET zu beschreiben, ist idempotent. Sie sollten in der Lage sein, genau denselben GET-Aufruf unbegrenzt oft durchzuführen und jedes Mal das gleiche Ergebnis zu erhalten, ohne dass der Server davon betroffen ist (natürlich vorausgesetzt, dass niemand den Status des Servers geändert hat) sind keine technischen Barrieren, die Sie daran hindern, GET oder POST zu missbrauchen.

    
Tesserex 03.03.2010, 21:29
quelle
4

$.post und $.get sind nur Wrapper für $.ajax mit entsprechenden Werten für den Parameter type . (Zeilen 4888 und 4913 in der Quelle .)

In MVC können Sie angeben, dass eine Controlleraktion nur Anforderungen akzeptiert, die unter Verwendung eines bestimmten HTTP-Anforderungstyps (unter Verwendung von AcceptVerbs Controller / Aktionsattribut).

Wenn Sie eine Anfrage an eine solche Aktion senden, müssen Sie den Anfragetyp angeben. In diesem Fall finden Sie möglicherweise $.post oder $.get eine praktische Verknüpfung zu $.ajax .

    
Lobstrosity 03.03.2010 21:37
quelle
3

Der einzige Fehler, mit dem ich konfrontiert wurde, ist, dass $ .get-Aufrufe vom IE zwischengespeichert werden, was ein Problem ist, wenn Sie normalerweise Ajax verwenden, um Daten zu aktualisieren. Wenn Sie GET verwenden möchten, aber nicht zwischengespeichert werden sollen, müssen Sie auf $ .ajax und auf $ .ajax klicken Cache übergeben: false in den Einstellungen.

    
Tom 03.03.2010 21:52
quelle
1

get ist ein HTTP-GET-Aufruf und post ist ein HTTP-POST.

Siehe Wikipedia für weitere Erklärungen .

Wenn Sie Daten einschließen (z. B. bei einer Formularübergabe), verwenden Sie im Wesentlichen post ; Wenn Sie nur eine Seite laden oder Parameter für Abfragezeichenfolgen übergeben möchten, verwenden Sie get . (Alle Daten, die Sie an get übergeben, werden als Abfragezeichenfolge übergeben.)

bearbeiten:

Sie getrennt sind, da das zugrunde liegende XMLHttpRequest-Objekt (das grundlegende AJAX Objekt in Browsern) Angabe eine Methode erfordert. In der Tat, noch niedriger als das, wenn Sie eine Webseite anfordern, müssen Sie entweder HTTP / 1.0 GET oder HTTP / 1.0 POST (oder die anderen Anfrage Methoden). Wenn Sie von einem Design-Standpunkt aus sprechen, kann ich als Alternative zur Übergabe einer Zeichenfolge an eine Art "Lade" -Methode nicht sagen, was die Software-Architekten hinter jQuery gedacht haben.

edit2:

Eigentlich, wenn Sie auf den neuesten jQuery Dokumentation aussehen, get und post sind unter" Kürzelmethoden "aufgeführt und entsprechende Methoden werden angegeben. Sie dienen nur dazu, Ihren Code zu verkürzen, und sind auch ein Synonym für die Methode ajax .

    
Ricket 03.03.2010 21:27
quelle
0

Sie sollten POST immer verwenden, wenn Sie Änderungssets pushen - es gibt Sicherheitsimplikationen, ich werde alle Details davon für die Recherche überlassen.

    
Mark Schultheiss 03.03.2010 21:59
quelle
0
%Vor%

GET wird im Grunde nur verwendet, um einige Daten vom Server abzurufen (abzurufen). Hinweis: Die GET-Methode kann zwischengespeicherte Daten zurückgeben.

POST kann auch verwendet werden, um Daten vom Server zu erhalten. Die POST-Methode speichert jedoch NIE Daten zwischen und wird oft verwendet, um Daten zusammen mit der Anfrage zu senden.

    
Bishak 30.08.2013 21:53
quelle

Tags und Links