我无法处理错误消息'在来自控制器的POST方法上

时间:2014-07-02 21:10:54

标签: javascript jquery xhtml sails.js

我一直在尝试使用Sails上的jQuery处理响应的错误消息。 我正在使用js文件(login.js)登录网站并使用另一个名为SessionController的js文件来保存我的逻辑代码。

首先,我的login.js文件中的jquery POST方法正在发送请求。 其次,故意,我试图输入错误的用户名或密码。但我无法在POST方法中处理错误消息。

以下代码将'Forbidden'作为错误参数返回,将'null'作为xhr.getResponseHeader('error')返回。但我期望“用户名错误”或“密码错误”。

我该怎么办?我愿意接受建议......

我的login.js文件

$(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" });

                });
        } 
    });

});

我的SessionController js文件

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

                };                
            });
        });
    }
};

0 个答案:

没有答案