4 Stimmen

Wie kann ich ein Javascript-Objekt an eine entfernte CFC-Komponente senden?

Ich habe ein Javascript-Objekt erstellt

var spanglist = {
    one: q1,
    two:q2,
    three:q3,
    four: q4};

Ich erstelle das Ajax-Jquery-Objekt, um die Daten an die CFC zu senden:

$.ajax({            
           url: 'gridly/components/pay.cfc',            
           type:"POST",            
            dataType:' json',            
            data: {method: "structFromJSobjt",            
                   returnFormat:"json",            
                   jsStruct: spanglist}
    });

In meiner cfc habe ich den folgenden einfachen Code:

<cffunction name="structFromJSobj" access="remote" output="false" >
    <cfargument name="jsStruct" required="true" default=""  />
    <!--- AT this point I would like to work with the data contained in the jsStruct object.  I can't access the data regardless of the typeI make the cfargument --->      
</cffunction>

Kann mir jemand einen Tipp geben, wie ich mit den Daten spielen kann, sobald sie in der Funktion sind?

7voto

Jake Feasel Punkte 16429

Ich persönlich würde nur geringfügige Änderungen vornehmen. Zum Beispiel:

$.ajax({            
           url: 'gridly/components/pay.cfc',            
           type:"POST",            
            dataType:' json',            
            data: {method: "structFromJSobjt",            
                   returnFormat:"json",            
                   jsStruct: JSON.stringify(spanglist)}
    });

Und auf der CF-Seite:

<cffunction name="structFromJSobj" access="remote" output="false" >
    <cfargument name="jsStruct" required="true" type="string"  />
    <cfset var cfStruct = DeserializeJSON(arguments.jsStruct)>

    <!--- now use your structure --->
</cffunction>

Dabei ist zu beachten, dass die JSON.stringify()-Methode in einigen Browsern nur sporadisch verfügbar ist. Ich empfehle daher, json2.js von http://www.json.org/

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