вызов функции coldfusion из другой функции через ajax, выдающий ошибку - PullRequest
0 голосов
/ 11 ноября 2010

Вот предложение: я отправляю ajax-запрос в функцию coldfusion, которая затем вызывает другую функцию внутри того же компонента.Вот две функции:

<!--- test--->
<cffunction name="deleteMission" access="public" output="No" returntype="struct">
 <cfscript>
  var returnData = structNew();
  structAppend(returnData, getTest());
  returnData.test2 = "test2";
 </cfscript>
 <cfreturn returnData>
</cffunction>

<!--- test2 --->
<cffunction name="getTest" access="public" output="No" returntype="struct">
 <cfscript>
  var returnData = structNew();
 returnData.testing = "TEST";
</cfscript>
 <cfreturn returnData>
</cffunction>

Очень просто, просто возвращая 2 ключа структуры в этом примере.Если я регулярно вызываю метод test () (т.е. при загрузке страницы через coldfusion), я получаю ожидаемые результаты.Однако, если я вызываю метод test () через AJAX, я получаю сообщение об ошибке «Переменная getTest не определена».Если я уберу вызов getTest (), я получу единственный ключ struct обратно, как и ожидалось.У кого-нибудь есть идеи, что происходит?Я чувствую, что это что-то простое, что я упустил из виду, но на этом этапе мне нужно еще несколько глазных яблок ... Я действительно почесал голову от этого.Спасибо!

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Если вы обращаетесь к компоненту через AJAX, тогда атрибут access вашего cffunction должен быть установлен на remote.Например,

<cffunction name="deleteMission" access="remote" output="No" returntype="struct">
0 голосов
/ 15 ноября 2010

Измените ваш getTest на access = "private".Кроме того, иногда метод StructAppend не принимает параметры как «вызов функции».Поэтому сначала поместите значение в переменную, а затем отправьте эту переменную в deleteMission.

как-то так ...

var inpData = getTest();
structAppend(returnData, inpData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...