我在CORS請求中使用angularjs $ http時遇到問題,我的成功函數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
是的,我已經改變它使用.then。但是我遇到了同樣的問題,標題是從第一次響應開始,數據來自第二次響應。 –