我似乎遇到了多个异步 ajax 调用导致 cfwheels 返回操作未找到错误的情况。我注意到当我将 async:false 添加到我的 ajax 调用时,我得到了一个成功的响应,但是当我不添加时,我随机得到一个错误响应。
此代码在处理其他 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>
任何帮助表示赞赏。:)