Ich muss einen JSON (den ich stringifizieren kann) an den Server senden und den resultierenden JSON auf der Benutzerseite abrufen, ohne JQuery zu verwenden.
Wie übergebe ich den JSON als Parameter, wenn ich ein GET verwenden sollte? Besteht das Risiko, dass es zu lang ist?
Wenn ich einen POST verwenden soll, wie setze ich das Äquivalent einer onload
Funktion in GET?
Oder sollte ich eine andere Methode verwenden?
ANMERKUNG
Bei dieser Frage geht es nicht darum, eine einfache AJAX zu senden. Es sollte nicht als Duplikat geschlossen werden.
javascript
json
post
get
xmlhttprequest
Jérôme Verstrynge
quelle
quelle
XMLHttpRequest
. Ungeachtet des Namens können Sie ihn für JSON-Daten verwenden (und genau so macht es jQuery im Hintergrund).sending
eine Ajax-Anfrage, was eine ziemlich allgemeine Sache ist. Dieser fragtsending
aber undreceiving JSON
in reinem JavaScript. Um diesen JSON zurückzusenden, müssen Sie außerdem wissen, wie Sie diesen Teil des Problems lösen können. Diesserver-side
ist eine andere Sache, die in der referenzierten Frage nicht erwähnt wird.onreadystatechange
ist das, was Sie zum Emulieren verwendenonload
, wie aus der unten akzeptierten Antwort hervorgeht. Zum Parsen verwenden Sie einfachJSON.parse()
(wieder wie in der Antwort gezeigt), aber ich ging davon aus, dass Sie das bereits wussten, seit Sie in der Frage das Stringifizieren erwähnt haben. Ich habe versucht, Ihnen zu helfen, indem ich Sie auf nicht 1, sondern 2 Fragen verwies, die diese Punkte abdecken. Es gibt offensichtlich einen Unterschied - selten sind 2 Fragen genau identisch -, aber es ist trivial, wenn Sie bereits wissen, wie man JSON stringifiziert und analysiert. Das heißt, da Sie und @ hex494D49 nicht einverstanden sind, nominiere ich dies für die Wiedereröffnung.Antworten:
Senden und Empfangen von Daten im JSON-Format mithilfe der POST-Methode
Senden und Empfangen von Daten im JSON-Format mit der GET-Methode
Umgang mit Daten im JSON-Format auf der Serverseite mit PHP
Die Begrenzung der Länge einer HTTP-Abrufanforderung hängt sowohl vom Server als auch vom verwendeten Client (Browser) von 2 KB bis 8 KB ab. Der Server sollte den Status 414 (Request-URI Too Long) zurückgeben, wenn ein URI länger ist, als der Server verarbeiten kann.
Hinweis Jemand sagte, ich könnte Statusnamen anstelle von Statuswerten verwenden. Mit anderen Worten, ich könnte
xhr.readyState === xhr.DONE
anstelle von verwenden.xhr.readyState === 4
Das Problem ist, dass Internet Explorer unterschiedliche Statusnamen verwendet, daher ist es besser, Statuswerte zu verwenden.quelle
xhr.status === 200
.XHR failed loading: POST
Verwenden des neuen API- Abrufs :
quelle
JSON.stringify
zweimal.