Как я не позволяю Firefox запрашивать имя пользователя и пароль для HTTP Basic Auth с JQuery AJAX?
Я пишу некоторые динамические функции на стороне браузера и использую HTTP Basic Auth для защиты некоторых ресурсов. Пользовательский опыт очень важен и высоко настроен.
Вот простой тестовый метод JQuery, который в конечном итоге проверит, предоставил ли пользователь правильные учетные данные в форме:
$(document).ready(function() {
$("#submit").click(function() {
var token = Base64.encode($('#username').val() + ':' + $('#password').val());
$.ajax({
url: '/private',
method: 'GET',
async: false,
beforeSend: function(req) {
req.setRequestHeader('Authorization', 'test:password');
},
error: function(request, textStatus, error) {
if (request.status == 401) {
alert('401');
}
}
});
return false;
});
});
Если они не имеют доступа/private
На данный момент они должны увидеть только окно оповещения. Однако в Firefox всплывающая форма входа в браузер появляется (чтобы повторить попытку с новыми учетными данными). Safari не делает этого.
Мы хотим полностью контролировать работу с пользовательскими формами, затуханиями, переходами и т. Д. Как я могу не отображать окно Firefox по умолчанию? (Если это будет проблемой при тестировании IE, я бы тоже хотел услышать там решения.)