我无法从登录API访问的数据响应中访问令牌值,请帮助我。
我的代码是从URL访问数据,响应以JSON格式
以JSON格式访问我的代码是
authFactory.login = function( username, password ){
return $http.post('/api/login' , {
username : username,
password : password
})
.then( function (data) {
console.log(data);
AuthToken.setToken(data.token);
return data;
})
}
so"数据"在浏览器中的响应以下。
Object {data: Object, status: 200, config: Object, statusText: "OK", headers: function}
config:Object
data:Object
message:"successfully login!"
success:true
token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1OGY1ZjZlZDhlMzcyMDA4MDhkMmU4NWQiLCJpYXQiOjE0OTI1MjI1OTR9.EkTtneJvBM47LOvMUMh81XYLI_O5oByf1qjWOxliTcs"
__proto__:Object
headers:function (name)
status:200
statusText:"OK"
__proto__: Object
,如果我访问登录API的URL,则将数据作为
进行 message:"successfully login!"
success:true
token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1OGY1ZjZlZDhlMzcyMDA4MDhkMmU4NWQiLCJpYXQiOjE0OTI1MjI1OTR9.EkTtneJvBM47LOvMUMh81XYLI_O5oByf1qjWOxliTcs"
看起来像是在处理诺言时,将响应称为 data
,尝试将其重命名为response
,这更可读。重命名后,您可以在响应response.data
中找到数据。
authFactory.login = function( username, password ){
var queryParams = {
'username': username,
'password': password
}
$http.post('/api/login' , queryParams)
.then(function (response) {
// replaced data with response, which is more human readable
console.log(response.data);
AuthToken.setToken(response.data.token);
return response.data;
});
}
您是否尝试过data.json().token
?
编辑
我有一次碰到我与响应相混淆,因为我将其命名为数据,并且响应包含一个带有数据的对象。
在这种情况下,我必须使用: data.data.token
。
我希望这也是您的情况:(