我有一個CFC文件,可處理從應用程序發送的所有電子郵件(使用Coldfusion8)。如何使用CFINVOKE將結構傳遞給Coldfusion CFC?
我用CFINVOKE調用這個CFC內部的各功能,並通過一個結構沿着像這樣所有用戶數據:
<cfscript>
var User.data = {};
User.data.name = "John Doe";
User.data.email = "[email protected]";
...
</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,這是一個痛苦,因爲我傳遞了大量的數據。
問題: 我怎樣才能得到這個使用argumentCollection工作。
即使我CFINVOKE這樣的:
<cfinvoke component="mailer_user" argumentcollection="#User.data#" method="say_hi"></cfinvoke>
仍然不能做任何事情。我在cfinvoke之前和之後設置輸出標誌,以及在進出的「say_hi」函數中。我只是在CFINVOKE之前拿到了國旗。
附註:這一切都是通過AJAX完成的,如果我的CFC在某處出現錯誤,我只能回到success =「false」。我只在系統上遠程工作,所以我不能設置AJAX調試中CFADMIN
如果你使用argumentCollection傳遞數據,你會得到什麼錯誤?另外,如果您使用的是cfscript,爲什麼不使用oMailer = createObject(「component」,「mailer_user」); oMailer.say_hi(argumentcollection = user.data); – 2012-07-18 07:54:05
我沒有使用cfscript,因爲我不知道語法:-)(第2個月Coldfusion)。我沒有收到任何錯誤,因爲AJAX只報告「成功」或「失敗」......我仍然想知道是否有辦法打開某種錯誤報告,因爲這種猜測肯定會縮短時間。 – frequent 2012-07-18 07:59:33
ColdFusion服務器有大量的調試選項。在調試和日誌記錄中查看管理員。請記住,開啓調試會將所有內容添加到所有頁面的底部,包括ajax結果,除非您使用cfsetting另外聲明它。事情是,如果不是拋出一個錯誤,那麼這些都不會幫助你。你需要使用傳統的調試與cfdump,cfabort,cflog等來幫助。 – 2012-07-18 08:07:34