Mam ten kod jako cffunction który działa prawidłowo:odpowiedź JSON za pomocą CFScript funkcję
<cfcomponent extends="core.core">
<cffunction name="loadService" access="remote" returnformat="JSON">
<cfscript>
objResponse = '{"CONFIG":[["internal"],[ "success"]],"DATA":[["Message1"]]}';
</cfscript>
<cfreturn objResponse>
</cffunction>
</cfcomponent>
próbuję przekonwertować go do pełnej funkcji CFScript jak ten:
component extends="core.core"{
remote JSON function loadService(){
objResponse = '{"CONFIG":[["internal"],[ "success"]],"DATA":[["Message1"]]}';
SerializeJSON(objResponse);
return objResponse;
}
}
Pierwszy sposób zwraca JSON dobrze i mogę go przetworzyć za pomocą jQuery. Drugi rzuca i błąd "Wartość zwrócona przez funkcję loadService nie jest typu JSON."
Próbowałem go zi bez SerializeJSON i obie strony rzucić ten błąd. Próbowałem go również bez określania JSON w składni funkcji. To nie powoduje błędu, ale powoduje owinięcie wokół niego informacji o wddxpacket. Wygląda tak, gdy nie podaję JSON:
<wddxPacket version='1.0'><header/><data><string>{"CONFIG":[["internal"],[ "success"]],"DATA":[["Message1"]]}</string></data></wddxPacket>
Utknąłem na tym. Każda pomoc byłaby świetna. Dzięki!
Wow, widzę teraz. Zmieszałem format returntype i return. To było głupie. Dodałem returnformat = "JSON" i zadziałało świetnie. Dzięki za pomoc. Bardzo to doceniam. – Sequenzia
Na pewno zanotuj komentarz Peruz dotyczący SerializeJSON(). –
Powiedzieliście: "Prawidłową składnią CFScript w CF9 jest:", czy jest jakaś dokumentacja dla CFScript ... skąd o tym wiesz? – John