我有一個現有的CFC在將結構傳遞給方法時工作正常。如何將STRUCT - 或 - JSON傳遞給Coldfusion CFC方法
問題是,我們現在還需要通過JSON將數據傳遞到相同的函數中。
這裏是CFC片段:
<cffunction
name="subscribeAPI"
access="remote"
returntype="struct"
returnformat="json"
output="false">
<cfargument
name="structure"
type="struct"
required="true"
hint="data structure received from call">
<cfif StructKeyExists(arguments.structure, "listID")
AND len(arguments.structure.listID)>
...
</cfif>
<cfreturn LOCAL />
下面是我們如何在結構傳遞:
<cfset preStruct = {
apiAction="Create",
listID="1463",
email="#form.cartEmail#",
firstname="#form.first_name#",
preCart="#now()#",
planDescription="#application.name.site#"
}
/>
<cfscript>voidReturn = application.goxObj.subscribeAPI(preStruct);</cfscript>
現在,我們還需要在下面的通過,但顯然由於CFC預期結構而出現錯誤:
function HandleSubscribe(){
$j.getJSON(
"/com/list.cfc?wsdl",
{
method : "subscribeAPI",
action : "Create",
listID : $j("#listID").val(),
triggerKey : $j("#triggerKey").val(),
email : $j("#emailNL").val(),
firstname : $j("#firstnameNL").val()
},
handleSubscribeCallback
);
}
如何成功傳入getJSON代碼片段?
謝謝。
我沒有託管API服務。只調用遠程API。 – 2012-02-28 23:02:57
如果我使用這種方法,我看到你將cfargument改爲一個字符串類型。這不會打破我在結構中傳遞的另一個呼叫嗎? – 2012-02-28 23:03:46
是的,但你不應該從應用程序內部調用api層。你應該直接調用服務層和createSubscription方法。此方法允許您將結構作爲參數集合傳遞。 – 2012-02-28 23:16:03