Ich bekomme Probleme bei der Verwendung von angularjs $ http in einer CORS-Anfrage, meine Erfolgsfunktion authenticateSuccess (Daten, Status, Header) bekommen falsche Header. Wie wir wissen, wird jede CORS-Anfrage zweimal in angularjs sein, ich bekomme zweimal Antwort vom Server, das erste Mal ist die Korsvalidierungsinformation, die zweite ist benötigte Antwort, aber meine Erfolgsfunktion erhält die Header in der ersten Antwort. Aber es sind Daten von der zweiten Antwort.
function login(credentials) {
var data = {
username: credentials.username,
password: credentials.password,
rememberMe: credentials.rememberMe
};
console.log(data);
return $http.post('//localhost:8080/api/authenticate', data).success(authenticateSuccess);
function authenticateSuccess(data, status, headers) {
console.log(headers());
console.log(data);
var bearerToken = headers('Authorization');
if (angular.isDefined(bearerToken) && bearerToken.slice(0, 7) === 'Bearer ') {
var jwt = bearerToken.slice(7, bearerToken.length);
service.storeAuthenticationToken(jwt, credentials.rememberMe);
return jwt;
}
}
}
Der '$ http'' .success' Handler ist veraltet. Verwenden Sie stattdessen '.then'. https://docs.angularjs.org/api/ng/service/$http#deprecation-notice – Phil
yep, ich habe es mit .then geändert. aber ich bekomme die gleichen Probleme, die Header ist von der ersten Zeit Antwort, die Daten sind von der zweiten Zeit Antwort. –