I'm using OpenBD 3.1

By following Raymond Camden's blog at: 
http://www.raymondcamden.com/2009/7/13/ColdFusion-9-fixes-onRequest-adds-onCFCRequest
I created an OnCFCRequest() handler in my Application.cfc like so:


 public any function onCFCRequest(string cfcname, string cfcmethod, struct 
args) 
 { 
    // These CFCs are restricted to HTTPS POST access:  

    var post_only = [ "card_info", "card_swipe", "card_type", "card_valid" 
]; 
    var ret = ""; 

    if (lcase(cgi.request_method) != "post" and arrayfindnocase(post_only, 
cfcmethod) > 0) 
    { 
        ret = "Methods involving card numbers are restricted to HTTPS POST 
only."; 
    } 
    else 
    { 
        var comp = createobject("component", cfcname); 
        var ret = evaluate("comp.#cfcmethod#(argumentcollection=args)"); 
    } 

    return ret;
 }


This works but to me the createobject-->evaluate portion seems quite messy.
(The blog states this also.)

The real issue though is that this code breaks the "returnformat=json" 
portion of my cfc so that it seems to be completely ignored.
The only way to get json returned with this event handler in place is to 
provide "__bdreturnformat=json" in the cfc invocation.

When I comment-out this event handler the cfc returns json (because it 
specifies returnformat="json" in the function declaration.)
When I un-comment it the cfc returns only WDDX unless I add 
&__bdreturnformat=json to the call.

So my questions are:

   1. Is there a better way to do the oncfcrequest() which is not so messy?
   2. Is there a way to get it to recognize the returnformat in the cfc 
without having to specify it in the call to the cfc?

Thanks!
John Moss


-- 
-- 
online documentation: http://openbd.org/manual/
 http://groups.google.com/group/openbd?hl=en

--- 
You received this message because you are subscribed to the Google Groups "Open 
BlueDragon" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to