当后端响应为200时,我无法在本地存储中设置项。似乎无法识别请求的状态。
options = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Authorization': 'Bearer '+localStorage.getItem("access_token")
}),
observe: "response", // to display the full response
responseType: "json"
};
constructor(private http: HttpClient, private router: Router) {
}
authenticate(url, data, options) {
this.http.post(environment.getBaseAddress() +url+'/', data, options).subscribe((data:any) => {
if (data.status == 200) {
localStorage.setItem("access_token", data['access_token']);
console.log(data.status)
}
else this.router.navigateByUrl('something-else');
})
}
订阅块的下一个回调被执行的事实意味着您的API调用是成功的。因此,您不需要显式检查状态码,您可以这样做:
this.http.post(environment.getBaseAddress() +url+'/', data, options)
.subscribe((data:any) => {
localStorage.setItem("access_token", data['access_token']);
}, (err) => {
this.router.navigateByUrl('something-else');
});
订阅回调的更多信息。