0
votes

unable to send ajax() method and validate user. The login page shoudld hashed the password using md5.js first then pass the hashedPassword through an ajax() method. Any ideas

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="main">
        <div class="login-box">
            <div class="login-box-body">
                <p class="login-box-msg">Sign in to start your session</p>
                <div id="serverErrorDIV">
                    <button class="close" type="button" id="serverErrorClose"></button>
                    <span id="serverErrorMessage"></span>
                </div>
                <div class="login">
                    <div class="form-group has-feedback">
                        <input id="username" class="form-control" placeholder="Username">
                        <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
                    </div>
                    <div class="form-group has-feedback">
                        <input id="password" type="password" class="form-control" placeholder="Password">
                        <span class="glyphicon glyphicon-lock form-control-feedback"></span>
                    </div>

                    <div class="row">
                        <div class="col-xs-4">
                            <button  id="loginBtn" class="btn btn-primary btn-block btn-flat">Sign In</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
<script>
        jQuery(document).ready(function () {
            Login.init();
            $('#username').focus();
        });

        function showErrorMessage(message) {
            $('#serverErrorMessage').html(message);
            $('#serverErrorDIV').removeAttr('style');
            $('#serverErrorDIV').removeClass('display-hide');     }


        function login() {
            var username = $('#username').val();
            var password = $('#password').val();

            if (username == "" && password == "") {
                showErrorMessage("Kindly enter a valid username & password.");
                $('#username').focus();
            }
            else if (username == "") {
                showErrorMessage("Kindly enter a valid username");
                $('#username').focus();
            }
            else if (password == "") {
                showErrorMessage("Kindly enter a valid password");
                $('#password').focus();
            }
            else {
                $('#loginBtn').attr("disabled", "disabled");
                $("#progressIcon").removeClass("hide");

                var hashedPassword = md5(password);

** It should be able to send a post request to the controller** $.ajax({ url: '/Account/Login', type: "POST", data: { username: username, //password: password, hashedPassword: hashedPassword, },

                   $.ajax({
                    url: '/Account/Login',
                    type: "POST",
                    data: {
                        username: username,
                        //password: password,
                        hashedPassword: hashedPassword,


                    success: function (result) {
                        if (result == "Failure") {
                            showErrorMessage("Invalid login attempt.");
                            $('#loginBtn').removeAttr("disabled");
                        }

                        else
                            window.location.href = result;
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        if (textStatus == "Failure") {
                            showErrorMessage("There is some error while trying to login. Please contact Sales Departmet.");
                            $('#loginBtn').removeAttr("disabled");
                        }
                        else {
                            window.location.href = result;
                        }

                    }
                });
            }
        }

        $('#serverErrorClose').on("click", function () {
            $('#serverErrorDIV').addClass('display-hide');
            $('#password').val("");
        });

        $('#loginBtn').on("click", function () {
        });
    </script>

for reducing the code the md5.js and login.js scripts will not show here

1
MD5 is not secure. - SLaks
md5.js is a javascript that will generated the password at the client side - Alex Mateo
It still isn't secure. - SLaks
What does "not working" mean, specifically? What actually happens when you run that code, e.g., do you get any error messages errors in the browser's console? - nnnnnn
it doesn't shows any error messages - Alex Mateo

1 Answers

0
votes

In jQuery.Ajax data, error and success are 3 property. It can't be defined in one another.

 data: {
                        username: username,
                        //password: password,
                        hashedPassword: hashedPassword,

please replace the code like this, it should work.

 data: {
                        username: username,
                        //password: password,
                        hashedPassword: hashedPassword,
},