Udało mi się pomyślnie wywołać adres URL znajdujący się za katalogiem w Apache, który jest chroniony za pomocą podstawowego uwierzytelniania (htpasswd itp.). Żądanie Ajax GET działa normalnie i zwraca zawartość Zabezpieczony:Przekierowanie JavaScript z nagłówkiem autoryzacji
var encoded = Base64.encode(username + ':' + password);
$.ajax({
url: "/app/test",
type: "GET",
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + encoded);
},
success: function() {
window.location.href = '/app/test.html';
}
});
Mój oryginalny założeniem było to, że po sesji internetowej udało się uprawniony do żądania, by to umożliwić przekierowanie w „sukces” bloku bez pytania użytkownika referencje. Po wywołaniu tego bloku kodu użytkownik wprowadził nazwę użytkownika i hasło w niezabezpieczonym środowisku. Jednak po wywołaniu przekierowania przeglądarka otworzy okno logowania/hasła.
Jakieś sugestie, w jaki sposób mogę wstępnie autoryzować sesję z podstawową autoryzacją, która zostałaby dostarczona przez użytkowników?
czy to działa, jeśli uwierzytelnienie ustawienie 'headers' AJAX zamiast' beforeSend'? Na przykład: 'headers: {" Authorization ":" Basic "+ kodowany}' – Stef
Minęło trochę czasu, myślę, że testowałem to z tymi samymi wynikami. – hcabral
Wygląda na to, że [Nagłówek autoryzacji działa] (http://stackoverflow.com/questions/20617720/why-doesnt-the-browser-reuse-the-authorization-headers-after-an-authenticated-x) w przypadku AJAX. Pliki cookie są automatycznie wysyłane z prośbami, a Ty możesz to odczytać na serwerze, aby sprawdzić autoryzację (musisz pamiętać o XSS, CSRF). Każdy konkretny powód, dla którego chcesz korzystać z podstawowego uwierzytelniania? –