Angular 阅读和理解可观察的结构

Angular 阅读和理解可观察的结构,angular,rxjs,observable,Angular,Rxjs,Observable,我试图理解可观察的结构是怎样的。我想知道答案在哪里,错误在哪里,完整在哪里。我还想知道,在POST请求的情况下,在响应的哪里可以找到正文和标题部分 所以我做了一个console.log来查看可观察的: login(email: string, password: string) { console.log('Obs : ', this.http.post<any>(this._URL, { email: email, password: password })); }

我试图理解可观察的结构是怎样的。我想知道答案在哪里,错误在哪里,完整在哪里。我还想知道,在POST请求的情况下,在响应的哪里可以找到正文和标题部分

所以我做了一个console.log来查看可观察的:

  login(email: string, password: string) {
    console.log('Obs : ', this.http.post<any>(this._URL, { email: email, password: password }));
  }
登录(电子邮件:字符串,密码:字符串){
console.log('Obs:',this.http.post


但是我不知道在哪里可以找到我在上面解释的部分。

可观察的结构中找不到响应

首先,在您
subscribe()
observable之前,不会执行http调用:

 login(email: string, password: string) {
    this.http.post<any>(this._URL, { email: email, password: password }, {observe: 'response'}).subscribe((res) => console.log(res));
  }
登录(电子邮件:字符串,密码:字符串){
this.http.post(this.uurl,{email:email,password:password},{observe:'response'}).subscribe((res)=>console.log(res));
}

您无法在
可观察结构中找到响应

首先,在您
subscribe()
observable之前,不会执行http调用:

 login(email: string, password: string) {
    this.http.post<any>(this._URL, { email: email, password: password }, {observe: 'response'}).subscribe((res) => console.log(res));
  }
登录(电子邮件:字符串,密码:字符串){
this.http.post(this.uurl,{email:email,password:password},{observe:'response'}).subscribe((res)=>console.log(res));
}

如果我理解正确,您需要http post响应的标题和正文?我建议您看一下,基本上:

this.http.post(this.\uURL,{email:email,password:password},{observe:'response'})。订阅(response=>{
log(“这些是我的头:”,response.headers)
log(“这是我的身体:”,response.body)
});

如果我理解正确,您需要http post响应的标题和正文?我建议您看一下,基本上:

this.http.post(this.\uURL,{email:email,password:password},{observe:'response'})。订阅(response=>{
log(“这些是我的头:”,response.headers)
log(“这是我的身体:”,response.body)
});

请求从未发出过。如果您想查看可观察对象发出的值,您需要使用例如
.subscribe(value=>console.log(value))、
管道中点击
。阅读HttpClient上的文档:该可观察对象在有人订阅请求数据之前不会做任何事情如果你想查看可观察到的值,你需要使用例如<代码>订阅(value = >控制台.log(value))。,
点击
管道中的
。阅读HttpClient上的文档:在有人订阅请求数据(如标题)之前,此可观察对象不会执行任何操作你应该考虑查看截击器,她也要求看到标题,这只显示了他也要求看到标题,这只是显示了为什么,对于<代码>控制台。日志(“这些是我的标题:+响应。标题”< /代码>我进入控制台<代码>这些是我的标题:[对象对象]
?因为header是一个数组,我很笨,在
[object object]
try
console.log(“这些是我的头:”,response.headers)中将数组添加到字符串中会将其转换为字符串
取而代之的是^^^我得到了标题,但在标题中导航以查看我要查找的数据是否在其中仍然非常混乱。我已经阅读了您在链接中提供的文章,我得到了数据的“Null”。这就是为什么我想“手动单击”查看是否有标题:)
const keys=resp.headers.keys();console.log(“这些是我的标题:”,keys.map(key=>`${key}:${resp.headers.get(key)}`);
可能会为您提供一个更易于阅读的数组,我还必须在SPRING BOOT
configuration.setExposedHeaders(Arrays.asList(“授权、缓存控制、内容类型、用户ID”))中添加该数组;
正如您在链接中所解释的那样。非常感谢您的帮助为什么,对于
控制台.log(“这些是我的标题:“+response.headers”)
我进入控制台
这些是我的标题:[object object]
?因为标题是一个数组,而我很愚蠢,在
[object object]中将数组添加到字符串会将其转换为字符串
尝试
console.log(“这些是我的标题:”,response.headers)
取而代之的是^^我得到了标题,但在其中导航以查看我要查找的数据是否在其中仍然非常混乱。我已经阅读了您在链接中提供的文章,我得到的数据为“Null”。因此,我想“手动单击”查看是否有这些标题:)
const-keys=resp.headers.keys();console.log(“这些是我的头:”,keys.map(key=>`${key}:${resp.headers.get(key)}”);
可能会给你一个更容易阅读的数组,我还必须在SPRING BOOT
configuration.setExposedHeaders(Arrays.asList(“授权、缓存控制、内容类型、用户ID”))
正如您在链接中所解释的。非常感谢您的帮助