Intercepts any HTTP or AMF calls to an application based on CFC request.
<cffunction name="oncfcRequest" returnType="void">
<cfargument type="string" name="cfcname">
<cfargument type="string" name="method">
<cfargument type="struct" name="args">
</cffunction>
Method summary, Handling errors in Application.cfc in the Developing ColdFusion Applications
ColdFusion passes the following parameters to the method:
Parameter |
Description |
|---|---|
|
Fully qualified dotted path to the CFC. |
|
The name of the method invoked. |
|
The arguments (struct) with which the method is invoked. |
Whereas onRequest handles only requests made to ColdFusion templates, this function controls Ajax, Web Service, and Flash Remoting requests.
Create a folder onCFCRequest in your web root. Place test.cfc and Application.cfm in this directory and make an HTTP call to the CFC using the following URL:
http://localhost:8500/onCFCRequest/test.cfc?method=foo&arg1=1&arg2=2&arg3=3
When
you run the URL, the method onCFCRequest is called
and the function name foo is passed along with
the arguments arg1, arg2, and arg3.
You can then invoke the test.cfc as shown in the following example:
<!--- Application.cfc --->
<cfcomponent>
<cfset this.name = "oncfcrequest">
<cffunction name="onCFCRequest">
<cfargument type="string" name="cfcname" required=true>
<cfargument type="string" name="method" required=true>
<cfargument type="struct" name="args" required=true>
<cflog text="oncfcRequest()">
<cfdump var="#arguments#" output="console" format="text">
<cfinvoke
component = "oncfcrequest.test"
method = "foo"
returnVariable = "result"
argumentCollection = "#arguments.args#">
<cfdump var="#result#" output="console" format="text">
</cffunction>
<cffunction name="onRequest" output="yes" access="remote">
<cfargument type="string" name="targetpage">
<cflog text="onRequest()">
</cffunction>
</cfcomponent>
<!--- test.cfc --->
<cfcomponent>
<cffunction name="foo">
<cfargument name="arg1" type="string" >
<cfargument name="arg2" type="string" >
<cfargument name="arg3" type="string" >
<cfreturn arguments>
</cffunction>
</cfcomponent>