当我尝试在cfc中调用方法时,我收到500错误。由于我没有得到任何调试信息,我正在努力弄清楚发生了什么。我查看了日志,没有任何内容可以显示正在发生的事情。我正在使用jquery .ajax
使用POST
这是jquery:
$("#edit_button").click(function(){
if(theArray.length > 0){
theJson = JSON.stringify(theArray);
}
$.ajax({type:"POST",
url: "/CFCs/fund_profile.cfc?method=updateProfile",
data:theJson,
dataType:"json",
success:(function(response){
var content = ''
response = JSON.parse(response);
alert("the response is" + response);
});
});
});
cfc中的方法现在非常基础:
<cffuntion name="updateProfile" access="public" returnFormat="json">
<cfargument name="theJson">
<cfif isJson(theJson)>
<cfset var theArray = deserializeJson(theJson)>
<cfset var passingJson = serializeJson(theArray)>
</cfif>
<cfreturn passingJson>
这是堆栈跟踪:
500
javax.servlet.ServletException
at coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:154)
at coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:289)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
我很难过,如果没有任何真正的调试信息,我就会被困住。有什么想法吗?
答案 0 :(得分:4)
您的CFC方法的访问属性需要远程进行Ajax调用(或者来自Flex应用程序的服务)。基本上,如果没有将访问权限设置为远程,则所讨论的方法不可用&#34;可用&#34;什么时候打电话。
尝试:
<cffunction name="updateProfile" access="remote" returnFormat="json">
...
</cffunction>