2 Stimmen

POST serialisiertes JSON-Objekt an eine Coldfusion-Remote-Methode anstatt FORM zu verwenden

Ich habe Javascript-Objekt, das aus komplexen Array von Strukturen mit verschachtelten Strukturen von anderen Javascript-Objekte dynamisch auf Seite etc. lange Geschichte erstellt besteht. Ich kann nicht Form verwenden, da meine vars wie 2_34_x_y_foo_bar_235423 aufgrund der Art der UI sein würde.

Wenn ich, dass stringified Objekt mit GET senden. Ajax-Anfrage an eine Remote-CFC-Methode läuft alles in Ordnung, bis JSON 4000+ Zeichen lang wird, und in der Regel wird es länger als das sein.

Wenn ich POST .ajax verwende, erhalte ich den Status 302 und eine Umleitung zu cfcexplorer.

Gibt es eine Möglichkeit, ich könnte "anhängen" Objekt zu einem Formular und senden Sie meine Daten als Formular senden, oder eine Möglichkeit, ein JSON-Objekt zu senden, wie es jetzt mit einem Ajax-Aufruf geschieht?

4voto

Edward M Smith Punkte 10567

Wenn Sie an eine entfernte CFC-Methode senden, müssen Sie sicherstellen, dass Sie immer noch Ihre "method=cfcMethodName" als Teil der Anfrage haben.

Sie können dies im URL-Teil beibehalten (POST /mycfc.cfc?method=myMethodName), oder Sie können es als Formularfeld in den Beitrag einfügen.

Die Umleitung besteht darin, dass CF keine Methode zur Ausführung bringt und daher denkt, dass Sie versuchen, die CFC zu introspektieren.

2voto

balpha Punkte 47970

Das ist ziemlich genau das, was ich in einem aktuellen Projekt mache:

form = $("<form method='POST' action='/foo'><input type='hidden' name='data'></form>")
form.find("input").val(JSON.stringify(my_data_object));
form.hide().appendTo($("body")).submit();

(Beachten Sie, dass ich keinerlei Erfahrung mit Coldfusion habe; dies ist ein Python-Projekt).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X