У меня возникают проблемы при использовании angularjs $ http в запросе CORS, моя функция аутентификации authenticateSuccess (данные, статус, заголовки) получает неправильные заголовки. Как мы знаем, каждый запрос CORS будет дважды в angularjs, я получаю два ответа от сервера, первый раз - информация о проверке cors, вторая - ответ, но моя функция успеха получает заголовки в первом ответе. Но это данные от второго ответа.
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;
}
}
}
Обработчик '$ http'' .success' устарел. Вместо этого используйте '. Then'. https://docs.angularjs.org/api/ng/service/$http#deprecation-notice – Phil
yep, я изменил его, используя. then. но я получаю те же проблемы, заголовки с первого раза ответ, данные со второго ответа времени. –