У меня есть файл 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