In meiner eckigen App versuche ich grundlegende HTTP-Authentifizierung durchzuführen.eckige HTTP-Authentifizierung: keine Browser-Login-Eingabeaufforderung erhalten
Ich sende die http Get-Anfrage von Angular ohne irgendwelche Anmeldeinformationen zunächst, da ich davon ausgehe, dass, wenn das Backend einen 401-Status sendet, der Browser mich nach Anmeldeinformationen fragen würde und dann die Anforderung selbst erneut einreichen würde.
Die Aufforderung zur Eingabe des Browsers wird jedoch nie angezeigt. Diese ist der Fehler, die ich bekomme:
angular.js:11756 GET http://localhost:8080/appName/rest/keys/Keys?batch=0&userName=Test 401 (Unauthorized)
Dies sind die Header i für die Antwort erhalten:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:origin, content-type, accept, authorization
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS, HEAD
Access-Control-Allow-Origin:http://localhost:3001/
Content-Length:0
Date:Tue, 09 Aug 2016 14:53:26 GMT
Server:Apache-Coyote/1.1
WWW-Authenticate:Basic
Ich hatte gehofft, dass der Browser Prompt würde automatisch angezeigt, wenn es Status trifft 401, aber es scheint hier nicht der Fall zu sein. Fehle ich etwas?
EDIT:
Es funktioniert nicht in Chrome und Firefox, funktioniert aber in IE, IE eine Anmeldeaufforderung angezeigt wird, wenn ich versuche, die URL für den Zugriff auf und funktioniert einwandfrei mit Benutzername und Passwort, während Chrome direkt gibt einen 401 Fehler.
Wenn ich versuche, direkt über die Adressleiste auf die Server-URL zuzugreifen, zeigt Chrome die Anmeldeaufforderung an und fragt nach den Anmeldeinformationen. Nicht sicher, aber kann es ein CORS-Problem sein?
Interessanterweise funktioniert es in IE, nicht in Chrom. IE zeigt die Eingabeaufforderung wie üblich an. – gaurav5430