Хорошо, структура сеанса CF и jQuery работают в двух разных сферах - CF на сервере и jQuery в браузере. Чтобы «отправить эту структуру ColdFusion в [cfc] ...» из Ajax, вам нужно будет сериализовать структуру сеанса в виде строки json, а затем каким-то образом передать эту строку json клиенту. Скорее всего, вы захотите сделать это как часть визуализации страницы для клиента:
<cfoutput>var jsonStruct = #SerializeJSON(session.myStruct)#;</cfoutput>
Затем вы можете при необходимости использовать переменную jsonStruct
из вашего кода jQuery (как настоящий объект JS). Когда вам нужно отправить его обратно в CF, вы можете снова его сериализовать на стороне Javascript, например:
$.ajax({
url: "foo.cfc?method=myMethod",
dataType: "json",
data: {myStruct: JSON.stringify(jsonStruct)},
success: function (respJSON) {
jsonStruct = respJSON;
}
});
Обратите внимание, что вы должны включить json2.js для выполнения сериализации, поскольку некоторые браузеры кашляют IE кашляют не поддерживают JSON.stringify()
изначально.
Обновление
Я обновил пример кода jquery, чтобы показать, как вы можете обновить объект javascript, чтобы использовать ответ от CFC. Для правильной работы ваш CF должен выглядеть примерно так:
<cffunction name="myMethod" access="remote" returnFormat="json">
<cfargument name="myStruct" type="string">
<cfset var realStruct = DeserializeJSON(arguments.myStruct)>
<cfset session.myStruct = realStruct><!--- or whatever you want to do with it at this point --->
<cfreturn session.myStruct>
</cffunction>