Как передать структуру в Coldfusion CFC с помощью CFINVOKE?

У меня есть файл CFC, который обрабатывает все электронные письма, которые я отправляю из приложения (с помощью Coldfusion8 ).

Я использовал CFINVOKE для вызова соответствующей функции внутри этого CFC и передал структуру со всеми пользовательскими данными вот так:

<cfscript>  
var User.data = {};
    User.data.name = "John Doe";
    User.data.email = "john@doe.com";
   ...
</cfscript>     
// call mailer
<cfinvoke component="mailer_user" method="say_hi">
    <cfinvokeargument name="userData" value="#User.data#">
</cfinvoke>

И внутри моего mailer.cfc

<cffunction name="say_hi" access="public" output="false">
    <cfargument name="userData" type="struct" required="true" /> 
....

По какой-то причине это теперь не работает, и я могу заставить его работать, только если я передаю поля отдельно как cfargument , что является проблемой, так как я передаю много данных.

Вопрос: Как я могу заставить это работать, используя argumentsCollection .

Даже если я CFINVOKE вот так:

 <cfinvoke component="mailer_user" argumentcollection="#User.data#" method="say_hi"></cfinvoke>

это все еще ничего не делает. Я устанавливаю флаги вывода прямо перед cfinvoke и после, а также внутри функции "say _hi", которая входит и выходит. Я получаю флаг только перед CFINVOKE.

Примечание :Все это делается через AJAX, и я получаю значение success="false" только в том случае, если где-то в моем CFC есть ошибка. Я работаю только удаленно в системе, поэтому не могу настроить отладку AJAX в CFADMIN

0
задан James A Mohler 29 November 2012 в 22:29
поделиться