Piszę niektóre funkcje dynamiczne po stronie przeglądarki i za pomocą HTTP Basic Auth, aby chronić niektóre zasoby. Doświadczenie użytkownika jest bardzo ważne i wysoce spersonalizowane.Jak ustawić Firefoksa w wyświetlaniu monitu o nazwę użytkownika/hasło za pomocą HTTP Basic Auth z JQuery AJAX?
Oto prosty test metoda JQuery, że w końcu będzie testować jeśli użytkownik dostarczył odpowiednie poświadczenia w formie:
$(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;
});
});
Jeśli nie uzyska się dostęp do /private
, w tej chwili powinien widzą tylko pole ostrzeżenia. Jednak w przeglądarce Firefox pojawia się formularz logowania do przeglądarki (aby spróbować ponownie z nowymi danymi uwierzytelniającymi). Safari tego nie robi.
Chcemy całkowicie kontrolować wrażenia związane z niestandardowymi formularzami, zanikami, przejściami itp. Jak mogę zapobiec wyświetlaniu domyślnego okna przeglądarki Firefox? (. Jeśli to będzie problem, gdy testujemy dla IE, chciałbym usłyszeć rozwiązań tam, zbyt)
Uwaga obserwacja pod adresem http://stackoverflow.com/questions/928967/can-i-coerce-apache-into-not-include-a-www-authenticate-header-for-failed-http. –