Я обнаружил, что этот вопрос задавался ранее , но в нем содержались плохие примеры и нет правильных ответов, поэтому я здесь, чтобы задать его еще раз.Сначала код:
HTML:
<td><input type="button" name="clear_#get_images.prdt_img_rel_ID#_cache" value="Clear Cache" onClick="clearCache('#get_images.images_name#');"/></td>
Прокси:
<cfajaxproxy cfc="/cfc/cloudfiles" jsclassname="proxy">
JavaScript:
<script type="text/javascript">
var proxy = new proxy();
function clearCache( objectName ) {
proxy.setCallbackHandler( purgeResultsHandler );
proxy.setErrorHandler( myErrorHandler );
alert(objectName);
proxy.purgeItemDirectly( objectName );
}
var purgeResultsHandler = function ( res ) {
alert( res );
}
var myErrorHandler = function(statusCode, statusMsg) {
alert('Status: ' + statusCode + ', ' + statusMsg);
}
</script>
ХФУ:
<cffunction name="purgeItemDirectly" access="remote" returntype="string" output="false">
<cfargument name="container" type="string" required="false" default="content" />
<cfargument name="objectName" required="true">
<cfset var res = '' />
<cfhttp method="DELETE" charset="utf-8" url="#variables.cdn_url#/#_encodeContainerName(arguments.container)#/#_encodeObjectName(arguments.objectName)#">
<cfhttpparam type="header" name="X-Auth-Token" value="#variables.auth_token#" />
<cfhttpparam type="header" name="X-Purge-Email" value="#Application.debuggingEmail#" />
</cfhttp>
<cfswitch expression="#ListFirst(cfhttp.statusCode, " ")#">
... code to iterate through responses ...
</cfswitch>
<cfreturn res >
</cffunction>
Как видите, у меня есть предупреждение, чтобы проверить objectName в JS.На данный момент objectName существует.Тем не менее, он не существует, как только я попадаю в функцию в cfc.Я вставил текстовые значения для возврата в cfc, так что я знаю, что он вызывается правильно, я просто не могу передать в него значение (из переменной или просто из простой строки).
Заранее спасибо за вашепомощь.