Ajax GET-Anfragen: Verwendung Parameter oder stellen Daten in URL?
-
03-07-2019 - |
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}
});
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.