我不知所措。
我正在通过 Ajax 发布到 Coldfusion8 cfc,虽然它在我的本地计算机上运行良好,但在实时服务器上,我无法调用此 CFC 中的任何函数,或者它是扩展的 CFC。
我想做这个:
<cfset LOCAL.response = THIS.commit() />
如果我转储:
<cfdump output="e:\path\to\dump.txt" label="catch" var="committing">
<cfdump output="e:\path\to\dump.txt" label="catch" var="#THIS#">
<cfset dickhead = THIS.Commit() >
<cfdump output="e:\path\to\dump.txt" label="catch" var="out">
我越来越:
committing
****************************************************************
catch - component services.form_service_user
extends controllers.form_switch
Methods:
DEFAULTS
[function]
Arguments: none
ReturnType: struct
Roles:
Access: public
Output: false
DisplayName:
Description:
PROCESS
[function]
Arguments: none
ReturnType: struct
Roles:
Access: remote
Output: true
DisplayName:
Description:
COMMIT
[function]
Arguments: none
ReturnType: struct
Roles:
Access: public
Output: false
Description:
...
所以方法/功能就在那里。但我不会出去。我也清除了提交函数,除了一个单独的返回值和一个转储。我既没有得到转储,也没有得到返回值。
问题:
如果我在 PROCESS 中,为什么我不能在实时服务器上调用 COMMIT,而它在生产环境中运行良好?这是某种缓存还是其他设置?另外,我无权访问 CFadmin,所以我或多或少是在瞎猜?
感谢您提供任何信息!
编辑:
提交调用在 try/catch 中:
<cftry>
<cfdump output="e:\dump.txt" label="catch" var="a">
<cfdump output="e:\dump.txt" label="catch" var="#THIS#">
<cfset LOCAL.Response = THIS.Commit() >
<cfdump output="e:\dump.txt" label="catch" var="b">
<!--- COMMIT ERRORS --->
<cfcatch>
<cfdump output="e:\dump.txt" label="catch" var="ERROR">
<cfset LOCAL.Response.Success = false />
<cfset LOCAL.Response.Errors = [["server_error","commit error"]] />
</cfcatch>
</cftry>
我收到 AJAX 返回的“提交错误”