我似乎遇到了多个异步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>
感谢任何帮助。 :)
答案 0 :(得分:1)
这是生产还是设计模式?常见的ajax问题通常与在设计模式下框架完全加载之前触发的ajax请求有关,这意味着在加载所有路径等之前偶尔会调用控制器。