Я борюсь с вызовом setQueryFormat () для AJAX-функции в CF9. У меня есть CFM-файл, который выглядит так:
<div id="div1" onclick="callfkt1('POST');" style="cursor:pointer;">POST</div>
<div id="div2" onclick="callfkt1('GET');" style="cursor:pointer;">GET</div>
<script type="text/javascript">
function callfkt1(sHTTPMethod) {
var oTester001=new CTester001();
oTester001.setCallbackHandler(function(result) {
alert(JSON.stringify(result));
});
oTester001.setErrorHandler(function(err, msg) {
alert(err + ': ' + msg);
});
oTester001.setHTTPMethod(sHTTPMethod);
oTester001.setQueryFormat('column');
oTester001.fkt1();
}
</script>
Tester001.cfc содержит следующее:
<cfcomponent >
<cffunction name="fkt1" returntype="query" access="remote">
<cfquery name="local.queries.qry1" datasource="brdwr">
SELECT url_id, url
FROM urls
</cfquery>
<cfreturn local.queries.qry1>
</cffunction>
</cfcomponent>
Когда я вызываю функцию JavaScript с параметром 'GET', результат возвращается в формате запроса 'column', что означает, что он содержит элемент ROWCOUNT, в котором хранится количество записей, возвращаемых из запроса. При использовании метода запроса «POST» набор записей возвращается в формате «строка» без элемента ROWCOUNT. Вы испытали это? Вы ограничиваетесь получением запроса CFAJAX?
Best.