CORSリクエストでangularjs $ httpを使用すると、私の成功関数authenticateSuccess(data、status、headers)が間違ったヘッダーを取得するときに問題が発生します。私たちが知っているように、CORSのリクエストはすべて2回あり、サーバーから2回の応答を得ます。最初はコルス検証情報です.2回目は応答が必要ですが、成功関数は最初の応答でヘッダーを取得します。しかし、データは2番目の応答からです。
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を使って変更しました。私は同じ問題を抱えている、ヘッダーは最初の応答からです、データは2回目の応答からです。 –