Ich versuche, ein kleines Ajax-Chat-System zu erstellen (nur für den Teufel) und ich benutze prototype.js, um den Ajax-Teil zu behandeln.
Eine Sache, die ich in der Hilfe gelesen habe, ist, dass, wenn Sie json-Daten zurückgeben, die Callback-Funktion diese json-Daten im zweiten Parameter füllen wird.
Also in meiner PHP-Datei, die aufgerufen wird, habe ich:
%Vor%Auf der Ajax-Anfrage habe ich:
%Vor%Die Warnung des response.responseText gibt mir {"lastid": 8}, aber der json gibt mir null.
Weiß jemand, wie ich das schaffen kann?
Dies ist die korrekte Syntax zum Abrufen von JSON mit Prototyp
%Vor%Es gibt eine Eigenschaft von Response: Response.responseJSON, die nur dann mit einem JSON-Objekt gefüllt wird, wenn das Backend Content-Type: application / json zurückgibt, d. h. wenn Sie in Ihrem Backend-Code so etwas tun:
%Vor%in diesem Fall Response.responseJSON! = undefined, die Sie auf der Empfängerseite in Ihrem onSuccess (t) -Handler überprüfen können:
%Vor%Ich beantworte nicht wirklich die Frage nach dem zweiten Parameter des Handlers, aber falls es existiert, wird Prototype dies nur im Falle des richtigen Inhaltstyps der Antwort liefern.
Das kommt vom offiziellen Prototyp:
Auswerten einer JavaScript-Antwort Manchmal ist die Anwendung konzipiert um JavaScript-Code als Antwort zu senden. Wenn der Inhaltstyp der Antwort entspricht dem MIME-Typ von JavaScript dann ist das wahr und prototype wird automatisch eval () gab den Code zurück. Sie müssen die Antwort nicht verarbeiten explizit, wenn Sie nicht müssen.
Alternativ, wenn die Antwort a enthält X-JSON Header, sein Inhalt wird sein analysiert, als Objekt gespeichert und an die Rückrufe als zweites Argument:
new Ajax.Request ('/ some_url', { Methode: 'get', onSuccess: Funktion (Transport, JSON) {
%Vor%});
Verwenden Sie diese Funktionalität, wenn Sie nicht-trivial abrufen möchten Daten mit Ajax aber wollen das vermeiden Overhead der Analyse von XML-Antworten. JSON ist viel schneller (und leichter) als XML.
Sie könnten das Framework auch einfach überspringen. Hier ist eine Cross-Browser-kompatible Möglichkeit, Ajax zu machen, die in einem Kommentar-Widget verwendet wird:
%Vor%Ich habe diesen Code hier Ссылка
veröffentlichtTags und Links javascript php ajax prototypejs