6 Stimmen

Wie kann man außer GET und POST noch etwas anderes vom Browser an die RESTful-App senden?

Ich verstehe die RESTful-Sache nicht. Ja, ich weiß, wie ich eine GET-Anfrage an meine App von meinem Browser aus senden kann. Es ist durch URL-Verknüpfung.

<a href="stackoverflow.com/user/someone">

Und kann auch POST-Anfragen über die Formularmethode senden.

<form method="post">

Außerdem weiß ich, dass Browser manchmal HEAD-Befehle senden, um den Seitenstatus zu ermitteln, worauf der Endbenutzer jedoch keinen Einfluss hat.

Was sind dann diese DELETE- und PUT-Befehle, von denen ich gelesen habe? Wie senden Sie z. B. einen DELETE-Befehl von Ihrem Browser an Ihre RESTful-Anwendung?

5voto

Gumbo Punkte 617646

Le site HTML 4.01-Spezifikation beschreibt nur GET y POST como gültige Werte für die method Attribut . In HTML gibt es also keine Möglichkeit, andere Methoden als diese zu beschreiben.

Aber die HTML 5-Spezifikation (derzeit nur ein Arbeitsentwurf) heißt PUT y DELETE como gültige Werte .

Ein Blick in die Spezifikation des XMLHttpRequest-Objekts (derzeit ebenfalls nur ein Arbeitsentwurf), das für asynchrone Anfragen in JavaScript ( AJAX ), es unterstützt die PUT y DELETE Methoden auch, sagt aber nichts über die tatsächliche Unterstützung durch aktuelle Browser aus.

3voto

Ron DeVera Punkte 13986

Um PUT und DELETE zu simulieren, bauen Frameworks wie Rails stattdessen Formulare wie dieses:

<form action="/users/1/delete" method="post">
    <input type="hidden" name="_method" value="delete" />
    <input type="submit" value="Delete user 1" />
</form>

Dies ist eigentlich ein POST-Formular, aber unter Verwendung der versteckten _method eingeben, um dem Server mitzuteilen, welche Methode wirklich beabsichtigt war. Sie könnten diese Unterstützung auch in jedem anderen Web-Framework implementieren.

3voto

Hank Gay Punkte 67607

@C Moran hat Recht: Wenn Sie wirklich RESTful sein wollen, ist ein Browser kein idealer Client, unter anderem wegen des Fehlens von HTTP-Methoden über GET y POST . Wenn Sie es jedoch wirklich von einem Browser aus tun wollen, können Sie AJAX verwenden, um PUT s und DELETE s, z.B. YUI's Verbindungsmanager können Sie eine der folgenden HTTP-Methoden angeben:

  • GET
  • POST
  • HEAD
  • PUT
  • DELETE

2voto

klew Punkte 14589

Ich habe gehört, dass DELETE und PUT nicht in allen Browsern vollständig unterstützt wird (ich habe es nicht überprüft). Rails macht einen Workaround - es sendet POST mit einem versteckten Feld, das die echte Methode enthält. Es verwendet also wirklich nur GET und POST und auf dem Server liest es dieses versteckte Feld und reagiert darauf.

2voto

chefsmart Punkte 6668

Eine POST muss nicht über ein Formular erfolgen. Der beste Weg, dies und auch GET, PUT und DELETE kennenzulernen, ist die Verwendung eines ReST-Clients, um Ihre HTTP-Anfragen zu stellen und die Antworten zu sehen. Ich empfehle Ihnen, sich den kleinen Python-Client von http://restclient.org/

Ein Browser ist (noch) nicht das beste Werkzeug, wenn Sie sich mit ReST vertraut machen wollen. Mit einem Client wie dem oben genannten können Sie Ihre HTTP-Anfragen und -Antworten "sehen".

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