我试图使用Worklight应用程序实现非常简单的基于表单的身份验证。但是,当我激活登录功能时,它会停止发生404错误,并说找不到/ apps/services/j_security_check。奇怪的是,当我从IBM的developerWorks站点运行基于表单的身份验证示例时,它工作得很好。我无法弄清楚区别是什么,所有与身份验证有关的功能都完全相同,但是使用我自己的应用程序,我收到了此错误消息。以下是来源的相关部分:基于Worklight表单的身份验证:未找到j_security_check
var sampleAppRealmChallengeHandler = WL.Client.createChallengeHandler("SampleAppRealm");
sampleAppRealmChallengeHandler.isCustomResponse = function(response) {
if (!response || response.responseText === null) {
return false;
}
var indicatorIdx = response.responseText.search('j_security_check');
if (indicatorIdx >= 0){
return true;
}
return false;
};
sampleAppRealmChallengeHandler.handleChallenge = function(response) {
$.mobile.changePage($('#Login'));
$('#passwordInputField').val('');
};
sampleAppRealmChallengeHandler.submitLoginFormCallback = function(response) {
var isLoginFormResponse = sampleAppRealmChallengeHandler.isCustomResponse(response);
if (isLoginFormResponse){
sampleAppRealmChallengeHandler.handleChallenge(response);
} else {
$.mobile.changePage($('#page0'));
sampleAppRealmChallengeHandler.submitSuccess();
}
};
function proceedWithLogin() {
console.log("proceedWithLogin");
var reqURL = '/j_security_check';
var options = {};
options.parameters = {
j_username : $('#loginEmail').val(),
j_password : $('#loginPassword').val()
};
options.headers = {};
sampleAppRealmChallengeHandler.submitLoginForm(reqURL, options, sampleAppRealmChallengeHandler.submitLoginFormCallback);
}
任何想法可能导致这种情况?有没有隐藏的项目设置,我忽略了?谢谢!
不是我所知道的。输入用户名和密码后,当用户单击登录按钮时,我会触发函数proceedWithLogin。在此之前,我没有做任何登录方面的事情。 – 2013-04-23 08:01:58
每次尝试登录时都会发生这种情况,或者一次又一次地发生。我看到了同样的问题 - 但它只是偶尔404s。 – RenegadeAndy 2013-04-23 10:27:54
每一次。 – 2013-04-23 12:01:30