Tôi có một CFC hiện có hoạt động tốt khi truyền các cấu trúc vào phương thức.Làm thế nào để vượt qua STRUCT - HOẶC - JSON để Coldfusion Phương pháp CFC
Vấn đề là, bây giờ chúng ta cũng cần truyền dữ liệu vào cùng một hàm thông qua JSON.
Dưới đây là đoạn mã 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 />
Đây là cách chúng ta vượt qua trong các cấu trúc:
<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>
Bây giờ, chúng ta cũng cần phải vượt qua trong những điều sau đây nhưng rõ ràng gặp lỗi do CFC mong đợi một cấu trúc:
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
);
}
Làm cách nào để chuyển thành công đoạn mã getJSON?
Cảm ơn.
Tôi không lưu trữ dịch vụ API. Chỉ thực hiện cuộc gọi đến một API từ xa. –
Nếu tôi sử dụng phương pháp này, tôi thấy bạn đã thay đổi cfargument thành một chuỗi kiểu. Điều này sẽ không phá vỡ cuộc gọi khác của tôi mà đi qua một cấu trúc? –
Có, nhưng sau đó bạn không nên gọi lớp api từ bên trong ứng dụng của bạn. Bạn nên gọi trực tiếp lớp dịch vụ và phương thức createSubscription. Phương thức này cho phép bạn chuyển một cấu trúc như một bộ sưu tập đối số. –