CFWHEELS Асинхронные вызовы AJAX возвращают действие колес, не найдено

Кажется, я сталкиваюсь с ситуацией, когда несколько асинхронных вызовов ajax заставляют cfwheels возвращать ошибку действия, не найденного. Я заметил, что когда я добавляю async: false к моему вызову ajax, я получаю успешный ответ, но когда я не добавляю это, я получаю случайный ответ с ошибкой.

Этот код отлично работает, когда обрабатываются другие вызовы ajax, но загрузка занимает больше времени из-за настройки async.

    var checkLogin = function(){
         var loggedin = false;

         loginValidated = true;

         //Check login status
         $.ajax({
           type: "POST",
           url: '/loginAjax/validateLogin?format=json',
           global: false,
           async: false,
           success: function(data) {
              if (data.loggedIn) {
                 loggedin = true;
               }
           }
         });

return loggedin;
};

Это случайно не удается, обратите внимание, что я удалил параметр async:

    var checkLogin = function(){
      var loggedin = false;

    loginValidated = true;

$.ajax({
  type: "POST",
  url: '/loginAjax/validateLogin?format=json',
  global: false,
  success: function(data) {
    if (data.loggedIn) {
        loggedin = true;
    }
  }
});

return loggedin;
};

Вот действие, которое я вызываю:

    <cffunction name="validateLogin">
    <cfset var returnObj = {}>
    <!--- Set Return Data --->
    <cfset returnObj["loggedIn"] = false>

    <cfif StructKeyExists(SESSION.User, 'loggedIn')>
        <cfset returnObj["loggedIn"] = true>
    </cfif>

        <cfset renderWith(returnObj)>
    </cffunction>

Любая помощь приветствуется. :)


person osekmedia    schedule 15.10.2013    source источник


Ответы (1)


Это в режиме производства или разработки? Общие проблемы с ajax обычно связаны с запуском запроса ajax до полной загрузки фреймворка в режиме разработки, что означает, что ваш контроллер может иногда вызываться до загрузки всех маршрутов и т. Д.

person Neokoenig    schedule 16.10.2013
comment
Это в режиме разработки и в режиме дизайна. Я еще не включил производственный режим для тестирования, потому что система использует набор API, и после запуска все они будут подключаться к живым API, а не к разрабатываемым. Мне нужно будет опробовать режим тестирования и посмотреть, остались ли у меня те же проблемы. - person osekmedia; 16.10.2013
comment
Да, режимы разработки и проектирования не кэшируют фреймворк, они каждый раз перезагружают CFC, так что я обязательно попробую! - person Neokoenig; 16.10.2013
comment
Я думаю, что это удалось! Спасибо!! - person osekmedia; 17.10.2013
comment
Отличная штука :) -колеса радуюсь! - person Neokoenig; 17.10.2013