CFWHEELS异步AJAX调用返回轮未找到的动作

时间:2013-10-15 22:24:50

标签: jquery ajax asynchronous coldfusion cfwheels

我似乎遇到了多个异步ajax调用导致cfwheels返回未找到操作错误的情况。我注意到当我向我的ajax调用添加async:false时,我得到了一个成功的响应,但是当我不添加它时,我随机得到一个错误响应。

此代码在处理其他ajax调用时工作正常,但由于异步设置而加载时间较长。

    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;
};

随机失败,请注意我删除了异步设置:

    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>

感谢任何帮助。 :)

1 个答案:

答案 0 :(得分:1)

这是生产还是设计模式?常见的ajax问题通常与在设计模式下框架完全加载之前触发的ajax请求有关,这意味着在加载所有路径等之前偶尔会调用控制器。