Ich habe oben stehendes Skript, das quer über Domain und Buchungsdaten innerhalb eines Formulars abfragt.
Alles scheint gut zu funktionieren. JSON-Antwort kann in der Firebug-Konsole angezeigt werden. Ich möchte die Antwort bearbeiten und Statusmeldungen entsprechend dem Benutzer anzeigen. Wie soll ich es erreichen?
AKTUALISIEREN
Ich habe versucht, wie von T.J vorgeschlagen. Crowder aber noch kein Glück. Der modifizierte Code ist wie folgt
%Vor% Dies greift nicht auf data
und Alerts undefined
zu. Wenn ich versuche, es von success: handleSuccess()
zu übergeben, wird eine HTTP-Anfrage ausgeführt und weitergeleitet.
Ich erhalte eine Antwort von einer Ruby on Rails
-Anwendung. Hier ist die Methode, die ich treffe
Gibt es etwas, das ich in meiner Rails App konfigurieren muss
?Ich habe viele Tutorials einschließlich der obigen Antworten ausprobiert, hatte aber kein Glück. Also implementierte ich etwas wie unten
Formular
%Vor%Übergeben Sie die Funktion für das Formular
%Vor%In meinem Controller
%Vor%Und schließlich in create.js.erb
%Vor% Auf diese Weise habe ich submit_form
beim Senden von Formularen aufgerufen und show_errors
javascript function vom Server selbst aufgerufen. Und es funktioniert..
Aber trotzdem möchte ich Kommentare haben, wenn dies eine schlechteste Lösung ist?
Sie sind nah dran. Sie verwenden einfach den success
-Rückruf wie gewohnt (siehe die ajax
-Dokumente), kein besonderes:
Auch Ihr Code:
%Vor% ... würde die Funktion result
aufrufen und dann ihren Rückgabewert für die Eigenschaft jsonpresponse
des Ajax-Aufrufs verwenden. Wenn Sie eine separate Funktion verwenden möchten, ist das in Ordnung, aber Sie enthalten nicht die ()
, also:
Ich bin mir auch ziemlich sicher, dass Sie den Parameter jsonp
nicht benötigen / wollen, wenn Sie success
verwenden, also:
Schließlich: Sind Sie sicher , dass Sie contentType
festlegen möchten? Dies bezieht sich auf den Inhalt, der an den Server gesendet wird, und nicht auf den Inhalt, der von ihm empfangen wird. Wenn Sie wirklich JSON-codierte Daten auf dem Server veröffentlichen, ist das kein Problem. aber es sieht so aus, als ob Sie jQuerys serialize
-Funktion verwenden, wodurch JSON nicht erzeugt wird (es erzeugt eine URL-kodierte Datenkette). Wahrscheinlich möchten Sie also contentType
sowohl vom Aufruf als auch vom ajaxSetup
-Aufruf entfernen.
Ich hoffe, Sie können jQuery-JSONP ausprobieren jQuery-JSONP Anleitungen
[Beispiel]
%Vor%Tags und Links jquery ruby-on-rails json jsonp