Как связать HTTP-аутентификацию с JQuery для аутентификации системы входа в систему? - PullRequest
0 голосов
/ 01 августа 2010

Я пытаюсь открыть окно HTTP-аутентификации для обработки моего логина.Тем не менее, я хочу общаться с моей базой данных через Ajax.Но я не знаю, как подключить окно аутентификации HTTP с AJAX.

Есть идеи, как это сделать?Пожалуйста, включите пример

Ответы [ 2 ]

1 голос
/ 01 августа 2010

(К моему удивлению) jQuery имеет встроенную поддержку для предоставления аутентификационных данных HTTP:

$.ajax({
    url: "http://example.org/",
    username: "NAMENAMENAMENAMENAME",
    password: "PWPWPWPWPWPWPWPWPWPW",
    ...
})

Или вы можете переопределить объект XMLHttpRequest, как в этом примере: http://dothow.blogspot.com/2009/05/http-basic-authentication-with-jquery.html

1 голос
/ 01 августа 2010

Базовый HTML:

<form id="login-form" action="/login.php" method="post">
    <label for="username">Username: </label> 
    <input type="text" name="username" id="username"/><br />

    <label for="Password">Password: </label> 
    <input type="text" name="password" id="password"/><br />

    <input type="submit" value="Login"/>
</form>​

Базовый jQuery:

$(document).ready(function() {
    $('#login-form').bind('submit', function (e) {
        var self = $(this);

        // See ajax: http://api.jquery.com/jQuery.post
        // See serialize: http://api.jquery.com/serialize()
        jQuery.post(self.attr('action'), self.serialize(), function () {
            if (response.success) {
                // wooo, logged in
            } else {
                alert("Invalid username or password. Please try again");
            }
        }, 'json');

        e.preventDefault(); //prevent the form being posted 
    });
});​

Базовый PHP:

<?php
if ($_POST['username'] == 'Admin' && $_POST['password'] == 'letmein') {
    echo json_encode(array('success' => true));
} else {
    echo json_encode(array('success' => false));
};
?>

Немного проверки данных не сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...