我一直在尝试使用Sails上的jQuery处理响应的错误消息。 我正在使用js文件(login.js)登录网站并使用另一个名为SessionController的js文件来保存我的逻辑代码。
首先,我的login.js文件中的jquery POST方法正在发送请求。 其次,故意,我试图输入错误的用户名或密码。但我无法在POST方法中处理错误消息。
以下代码将'Forbidden'作为错误参数返回,将'null'作为xhr.getResponseHeader('error')返回。但我期望“用户名错误”或“密码错误”。
我该怎么办?我愿意接受建议......
$(document).ready(function(){
$("#btn-login").click(function() {
var username = $("#username").val();
var password = $("#password").val();
if(!username) {
} else if(!password) {
} else {
// alert('It"s continuing to POST');
$.post(
'/login',
{ username: username, password: password },
function() {
window.location = "/user/show/"
}).fail(function(xhr, textStatus, error){
alert('xhr.statusText: ' + xhr.statusText);
alert('textStatus: ' + textStatus);
alert('error: ' + error);
// $("#popupPaddedMessage").text("Error: " + xhr.getResponseHeader('error'));
// $("#popupPadded").popup("open", { positionTo: "window" });
});
}
});
});
module.exports = {
create: function(req, res, next) {
User.native(function(err, collectionUser) {
if(err) { return err; };
if(!collectionUser) { return err; };
collectionUser
.find({'username' : req.param('username')})
.nextObject(function (err, user) {
if(err) {
res.send(500, { error: "Database error"});
};
if(!user) {
res.send(400, { error: "Username error"});
};
if(user) {
if(user.password === req.param('password')) {
req.session.user = user;
res.send(user);
//res.redirect('/user/show/' + user[0]._id);
} else {
res.send(400, { error: "Password error"});
}
};
});
});
}
};