Frage

Was ist der Vorteil von Daten als Parameter vs Teil der URL in einer Ajax-GET-Anfrage vorbei?

Parameter:

var ajax = new Ajax.Request('server.php',{
    parameters: 'store=11200&product=Meat',
    onSuccess: function(myData){whatever}
});

Mit URL:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{
    onSuccess: function(myData){whatever}
});
War es hilfreich?

Lösung

Ein Vorteil des parameters Argument ist, dass Sie ihm ein Hash artiges Objekt statt als String übergeben können. (Wenn Sie dies tun, aber stellen Sie sicher, so die method Parameter auf "GET" als Standardmethode für die Prototype Ajax-Anfragen ist POST, siehe der Prototyp Einführung in Ajax für weitere Details.)

Ein weiterer Vorteil, der mehr in-line mit dem Beispiel, das Sie gegeben hat, ist, dass Sie die URL aus den Optionen trennen können, die ihn gesendet werden. Dies könnte nützlich sein, wenn zum Beispiel, müssen Sie eine Reihe von ähnlichen Anforderungen an mehr unterschiedlichen URLs senden. (In diesem Fall mit einem gemeinsamen Parameter Hash, dass Sie ändern für jede Anforderung nützlicher sein könnte, als einen Parameter-String verwenden, als auch.)

Weitere Informationen finden Sie unter der Prototyp Dokumentation von Ajax Optionen .

Andere Tipps

Einer meiner Lieblings-Anwendungen von Parameter ist in allen Bereichen eines Formulars zu übergeben, ohne sie explizit die Auflistung:

new Ajax.Request('/myurl.php', {
  method:  'get',
  parameters:  $('myForm').serialize(),
  onSuccess:  successFunc(),
  onFailure:  failFunc()
}

Um dies zu beantworten, sollten Sie die Art und Weise der Parameter arbeiten wissen. im Grunde HTTP (ich weiß, gibt es mehr) zwei Methoden, um Daten zu verlangen. GET und POST

Für GET, Parameter sind auf die Ressource angehängt Sie anfordern, wie Sie oben in Ihrem Code haben:? / My / resource / name para1 = bla. Hier gibt es keinen Unterschied, ob Sie, wenn sie direkt an den Ressourcennamen anhängen oder die Parameter Option verwenden. GET wird normalerweise Daten verwendet zu beantragen (Seine GET;)

Für POST, die Parameter von der Ressource in dem HTTP-Körper seperate geschrieben. Dazu müssen Sie die Parameter Option verwenden. POST verwendet wird (sehr groß) Daten zu senden.

Um die Anforderungsmethode zu verwenden, verwenden Sie die Methode Option angeben.

Hinweis: Die GET-Ressource hat (abhängig von Server zu Server) eine harte Grenze für die Länge. Deshalb sollten Sie nie viele Daten senden GET verwenden.

Sie können auch das Format verwenden:

var ajax = new Ajax.Request('server.php',{
  parameters: {
     store: 11200,
     product: "Meat"
  }
  onSuccess: function(myData){whatever}
});

Ein Vorteil der es auf diese Weise zu tun, ist, dass man von einem GET auf eine POST ohne Änderung der URL ändern können.

  • Ablesbarkeit
  • Einfach ein Objekt zu verwenden und serialise es ({store: 11200, product: "Meat"})
  • Ablesbarkeit

Es ist nicht wirklich aus technischer Sicht Rolle auf dieser anderen als der Formatierung und Präferenz, weil Anfragen bekommen immer die Daten in der URL haben. Die Parameter sind nur eine bequeme Möglichkeit, die GET-Anforderung zu bauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top