Angular Can';角度响应中的t解算选项
当来自后端的响应为200时,我无法在本地存储中设置项。它似乎无法识别请求的状态Angular Can';角度响应中的t解算选项,angular,typescript,api,response,status,Angular,Typescript,Api,Response,Status,当来自后端的响应为200时,我无法在本地存储中设置项。它似乎无法识别请求的状态 options = { headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Authorization': 'Bearer '+localStorage.getItem("access_token&qu
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');
});
关于订阅回调。另外,如果订阅块的成功部分正在执行,则隐式地表示api调用已成功。在这种情况下,您甚至不必担心状态代码。我无法共享access_令牌,但console.log(data.status)没有返回任何内容。谢谢你的洞察力。我如何在if语句中处理响应成功?这很可能是因为api返回的数据对象上没有名为status的属性。根据您迄今为止共享的内容,成功时您希望保存访问令牌,错误时您希望重定向到另一个路由-这正确吗?啊,好的,我知道了。你认为选项部分做得对吗?当我在这个.http.post(environment.getBaseAddress()+url+'/'数据,{observe:“response”)中添加observe:“response”时,一切正常。当我在选项中添加它时,问题就开始了。