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.

3voto

Don Werve Punkte 5052

Viele Webserver begrenzen die Länge der Daten, die als Teil der URL übergeben werden können, so dass die GET-Anforderung auf seltsame Weise unterbrochen werden kann, was schwer zu beheben ist.

Außerdem protokolliert die meiste Serversoftware URLs in den Zugriffsprotokollen. Wenn Sie also vertrauliche Informationen (z. B. Kennwörter) in einer GET-Anfrage übergeben, werden diese höchstwahrscheinlich im Klartext auf die Festplatte geschrieben.

Aus der REST-Perspektive sollten GET-Anfragen keine Nebeneffekte haben, d. h. sie sollten keine Daten verändern. Wenn Sie also nur eine Ressource nach ID abrufen, ist dies sinnvoll, aber wenn Sie Änderungen an einer Ressource vornehmen, sollten Sie PUT, POST oder UPDATE für das http-Verb verwenden.

2voto

trante Punkte 32326

Zunächst eine allgemeine Information. Verwenden Sie GET wenn Sie nur Daten lesen, verwenden Sie POST wenn Sie etwas an der Datenbank, den Textdateien usw. ändern.

Das Problem ist jedoch, dass einige Browser den Cache GET Ergebnisse. Ich hatte Probleme mit AJAX Anfragen im IE7, aber schließlich habe ich herausgefunden, dass Browser-Caches GET Ergebnisse. Ich habe den Ablauf überdacht und meine Anfrage geändert in POST .

Verwenden Sie also nicht GET wenn Sie keine Zwischenspeicherung wünschen.

(Natürlich können Sie die Zwischenspeicherung bei GET-Vorgängen deaktivieren, aber ich habe es nicht vorgezogen)

1voto

user86830 Punkte 63

Über mich: Ich bevorzuge POST. Ich reserviere mir die Ereignisse, von denen ich weiß, dass der gesendete Wert auf Daten beschränkt ist, über die ich die "Kontrolle" habe, z.B. um ein Element mit einer ID wieder zu erhalten. Beispiel: "getitem?id=123", "deleteImtem?id=123", ... In den anderen Fällen, wenn ich ein Formular habe, das vom Benutzer ausgefüllt werden kann, bevorzuge ich POST.

Wie Ryan Smith gesagt hat, ist es besser, POST zu verwenden, um eine große Menge an Daten zu senden, und weniger Sorgen in Fällen der Verwendung in anderen Sprachen/Sonderzeichen (im Allgemeinen alle Majors Javascript-Framework should'n't haben keine Probleme mit, dass zu behandeln, aber ich denke, ist weniger Sorgen zu verwenden POST).

Für die REST-Perspektive können Sie dies meiner Meinung nach mit einem neuen Projekt verwenden (um eine Konsistenz mit dem gesamten Projekt zu erhalten).

Schließlich können einige Programme, die in einem Netzwerk verwendet werden (URL-Logger (z.B.: um zu sehen, ob die Mitarbeiter ihre Zeit auf nicht-autorisierten Seiten verloren haben, ...) Proxys, ... ) oder jede andere Art von Tool können die Abfrage abfangen. Einige zeigen in den Berichten die Parameter an, die Sie mit GET gesendet haben, und betrachten sie wie eine andere Webseite. Aber in dieser Situation könnte es nicht Ihr Problem sein, sondern die Änderungen von einem Projekt zu einem anderen ;)

0voto

Hank Gay Punkte 67607

Der Unterschied ist derselbe zwischen GET y POST ob Sie Ajax, HTML oder eine andere Programmiersprache verwenden form s, oder curl . Hier sind die relevanten Definitionen:

-2voto

Ali Punkte 248006

Wenn Sie Argumente mit Zeichen weitergeben, die in der URL durcheinander geraten können (z. B. Leerzeichen), verwenden Sie POST. Ansonsten können Sie GET verwenden.

Wenn Sie nur ein paar kleine Argumente weitergeben wollen, verwenden Sie im Allgemeinen GET. Für die Übermittlung von Informationen, die vom Benutzer eingegeben wurden, wie z. B. Blogeinträge, Text usw., ist es jedoch sinnvoll, POST zu verwenden.

Es gibt auch bestimmte Frameworks, die sich vollständig auf segmentbasierte Urls verlassen (wie z. B. site.com/products/133 statt site.com/products.php?id=333 und diese Frameworks setzen die GET-Variablen aus Sicherheitsgründen zurück. In solchen Fällen würden Sie immer POST verwenden.

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