Angular Can';角度响应中的t解算选项

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

当来自后端的响应为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');
    });

关于订阅回调。

另外,如果订阅块的成功部分正在执行,则隐式地表示api调用已成功。在这种情况下,您甚至不必担心状态代码。我无法共享access_令牌,但console.log(data.status)没有返回任何内容。谢谢你的洞察力。我如何在if语句中处理响应成功?这很可能是因为api返回的数据对象上没有名为status的属性。根据您迄今为止共享的内容,成功时您希望保存访问令牌,错误时您希望重定向到另一个路由-这正确吗?啊,好的,我知道了。你认为选项部分做得对吗?当我在这个.http.post(environment.getBaseAddress()+url+'/'数据,{observe:“response”)中添加observe:“response”时,一切正常。当我在选项中添加它时,问题就开始了。