Строка ReturnFormat при отправке запроса CFAJAX - PullRequest
0 голосов
/ 30 января 2011

Я борюсь с вызовом 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.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Хотя это и не ответ, знайте, что при использовании формата строки вы все равно получаете те же данные. Это в другом формате, но вы все равно получаете все данные. Надо просто по-другому с этим работать.

0 голосов
/ 01 февраля 2011

Вы можете попробовать изменить свой CFC, чтобы явно объявить, как вы хотите, чтобы JSON возвращался, с помощью функции serilizeJson:

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_a-b_3.html

В качестве второго аргумента функции вы можете установить для serializeQueryByColumns значение True, чтобы она сериализовала данные в виде формата запроса WDDX, что и должно делать setQueryFormat ("column").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...