Liest eine domänenübergreifende JSON-Antwort

8
%Vor%

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

%Vor%

Gibt es etwas, das ich in meiner Rails App konfigurieren muss

?     
Pravin 16.03.2011, 13:11
quelle

3 Antworten

0

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?

    
Pravin 22.03.2011, 10:30
quelle
4

Sie sind nah dran. Sie verwenden einfach den success -Rückruf wie gewohnt (siehe die ajax -Dokumente), kein besonderes:

%Vor%

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:

%Vor%

Ich bin mir auch ziemlich sicher, dass Sie den Parameter jsonp nicht benötigen / wollen, wenn Sie success verwenden, also:

%Vor%

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.

    
T.J. Crowder 16.03.2011 13:16
quelle
1

Ich hoffe, Sie können jQuery-JSONP ausprobieren jQuery-JSONP Anleitungen

[Beispiel]

%Vor%     
Ahmed 17.03.2011 20:13
quelle

Tags und Links