Wie kann ich JQuery verwenden, um post JSON-Daten?
Ich möchte nach Json zu einem web-Dienst auf dem gleichen server. Aber ich weiß nicht, wie die post Json mit JQuery. Ich habe versucht mit diesem code:
$.ajax({
type: 'POST',
url: '/form/',
data: {"name":"jonas"},
success: function(data) { alert('data: ' + data); },
contentType: "application/json",
dataType: 'json'
});
Aber mit dieser JQuery-code die Daten nicht empfangen werden als Json auf dem server. Dies ist mit den erwarteten Daten auf dem server: {"name":"jonas"}
aber mit Hilfe von JQuery die server erhalten name=jonas
. Oder in anderen Worten, es ist "urlencoded" Daten-und nicht als Json.
Gibt es eine Möglichkeit zum buchen von Daten im Json-format statt urlencoded Daten mithilfe von JQuery? Oder muss ich eine manuelle ajax-request?
InformationsquelleAutor Jonas | 2011-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie übergeben ein Objekt, nicht einen JSON-string. Wenn Sie ein Objekt übergeben, jQuery nutzt
$.param
zum serialisieren des Objekts in name-Wert-Paaren.Wenn Sie übergeben die Daten als string, wird es nicht serialisiert werden:
Huh?
api.jquery.com/jquery.post
Warum würden Sie wollen, zu verwenden
$.post
? Es ist (a) nur ein wrapper für$.ajax
und (b) nicht in der Lage, das zu tun, was erforderlich ist, hier (d.h. in dercontentType
- Eigenschaft).Bis Sie wissen, jQuery 3, welche noch in der Zukunft jetzt never mind, wenn diese Antwort geschrieben wurde vor über vier Jahren.
InformationsquelleAutor lonesomeday
Basis auf lonesomeday Antwort, ich erstelle ein
jpost
umschließt, die bestimmte Parameter.Verwendung:
InformationsquelleAutor Ninh Pham
Habe ich versucht Ninh Pham Lösung, aber es funktionierte nicht für mich, bis ich optimiert - siehe unten. Entfernen contentType und nicht-codierte json-Daten
InformationsquelleAutor Lee Harding
Mit
Promise
und zu überprüfen, ob diebody
Objekt ist ein gültiges JSON. Wenn nicht ein Versprechenreject
zurückgegeben werden.InformationsquelleAutor loretoparisi