beforeSend jquery ajax

时间:2015-12-03 03:53:37

标签: jquery ajax authentication

我正在为我的网站进行简单的登录,我正在使用ajax与数据库进行交互。我想让它有点安全,所以我搜索ajax的安全性,所以我搜索AJAX authentication并在SO中读到这个问题。找到this并链接到this。不幸的是,我真的不明白它的作用或工作原理。我希望有人能为我澄清一下。在外行的任期内。



$(document).on('click', '#login', function() {
    var UserName = $('#username').val();
    var PassWord = $('#password').val();
    console.log(UserName);
    if (UserName) {
        if (PassWord) {
            $.ajax({
                type: 'POST',
                url: 'ajax/Login.php',
                dataType: "json",
                data: {
                    username: UserName,
                    password: PassWord
                },
                beforeSend: function(xhr) {
                    xhr.setRequestHeader("Authorization", "Basic " + btoa(UserName + ":" + PassWord));
                },
                success: function(data) {
                    if (data.error == true) {
                        $("#dialog").html(data.message);
                        $("#dialog").dialog({
                            title: "Login"
                        });
                        $("#dialog").dialog("open");
                    } else {
                        window.location = 'pages/dashboard.php';
                    }
                    //window.location = 'pages/dashboard.php';
                },
                error: function(data) {
                    alert('Login Error');
                    //window.location='../login.php';
                }
            });
        } else {
            $("#dialog").html("Password is empty!");
            $("#dialog").dialog({
                title: "Owner Information"
            });
            $("#dialog").dialog("open");
        }
    } else {
        $("#dialog").html("Username is empty!");
        $("#dialog").dialog({
            title: "Login"
        });
        $("#dialog").dialog("open");
    }

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" name="un" id="username" />
<input type="password" name="pw" id="password" />
<input type="button" id="login" value="Login " name="login1" style="background-color:#feaa38;width: 100px" />
&#13;
&#13;
&#13;

上面的代码是我的代码加上我从链接中获得的附加代码。 以下是附加代码。

beforeSend: function(xhr) {
    xhr.setRequestHeader("Authorization", "Basic " + btoa(UserName + ":" + PassWord));
},

我想知道。

  1. ajax身份验证的作用。
  2. 我真的需要它。
  3. 我怎么知道它有效。
  4. 它到底做了什么。

1 个答案:

答案 0 :(得分:1)

  1. 请不要在这里抓到Ajax。这只是利用&#34; Basic&#34; Apache提供的身份验证。 user / pass需要与引用的.htpasswd文件中的那些匹配。 Apache将拦截请求,然后在验证后将请求重新路由到原始目的地,并且已经为您存储了授权会话。

  2. 这看起来有点矫枉过正。您正在发送用户名和密码以对所有未来的服务器请求进行身份验证(可能),而不仅仅是登录您的软件。在一个地方控制用户似乎有点多,而不是一个。

  3. 如果您以一种查看网站需要密码和用户名的方式保护您的网页,那么这将确保每个请求都必须遵循此要求。但是,一旦他们重新登录,就无法执行此操作。

  4. 这可以通过1-3解释。

  5. 这看起来有点矫枉过正,我认为它不再增加安全性。一旦有人知道一个密码,他们就知道了。放弃它。