通过ajax从另一个函数调用coldfusion函数会导致错误

通过ajax从另一个函数调用coldfusion函数会导致错误,ajax,function,coldfusion,Ajax,Function,Coldfusion,交易如下:我向coldfusion函数发送一个ajax请求,然后该函数调用同一组件中的另一个函数。以下是两个功能: <!--- test---> <cffunction name="deleteMission" access="public" output="No" returntype="struct"> <cfscript> var returnData = structNew(); structAppend(returnData, getTes

交易如下:我向coldfusion函数发送一个ajax请求,然后该函数调用同一组件中的另一个函数。以下是两个功能:

<!--- 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个结构键。如果我定期调用方法测试,即通过coldfusion加载页面,我会得到预期的结果。但是,如果我通过AJAX调用方法测试,我会收到错误变量getTest未定义。如果我删除对getTest的调用,我将按预期收到单个结构键。有人知道发生了什么吗?我有一种感觉,我忽略了一些简单的事情,但我需要更多的眼球在这一点上。。。这件事真让我抓狂。谢谢

如果您是通过AJAX访问组件,那么cffunction的access属性应该设置为remote。例如


将getTest更改为access=private。 此外,有时StructAppend方法不接受参数作为函数调用。因此,首先将值放入变量中,然后将该变量发送给deleteMission

像这样的

var inpData = getTest();
structAppend(returnData, inpData);

如果我删除对getTest的调用,我将按预期收到单个结构键。我不明白,你的ajax调用URL是什么?发布你的ajax脚本!方法测试在哪里?你的问题中只有deleteMission&getTest。
var inpData = getTest();
structAppend(returnData, inpData);