Я пытаюсь открыть окно проверки подлинности HTTP для обработки моего входа. Однако я хочу связаться с моей базой данных через Ajax. Но я не знаю, как подключить окно проверки подлинности HTTP с AJAX.
Есть идеи как это сделать? Также укажите пример
(К моему удивлению) jQuery имеет встроенную поддержку для предоставления аутентификационных данных HTTP:
$.ajax({ url: "http://example.org/", username: "NAMENAMENAMENAMENAME", password: "PWPWPWPWPWPWPWPWPWPW", ... })
Или вы можете переопределить объект XMLHttpRequest, как в этом примере: http://dothow.blogspot.com/2009/05/http-basic-authentication-with-jquery.html
Основной 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)); }; ?>
Немного проверки данных не будет ошибкой.