gpt4 book ai didi

angular - 如何在 typescript 中解包 http post 响应中的对象?

转载 作者:可可西里 更新时间:2023-11-01 17:04:26 27 4
gpt4 key购买 nike

如何打开从 HTTP POST 请求接收到的对象?

这是我的代码:

this.http.post(url, user, httpOptions).subscribe(result => {
console.log(result.status);
});

我在 console.log() 上收到错误

Property 'status' does not exist on type 'Object'.

如何解包结果变量/响应对象以便我可以在 typescript 中读取各个值?

如果我使用 console.log(result),我可以看到所有的值。

最佳答案

如果您想在 httpOptions 中使用整个 HttpResponse,则需要指定 observe: 'response'。默认行为是 observe: 'body',它返回响应主体的 Observable。这也描述了here.

我创建了一个 StackBlitz演示这是如何工作的(请参阅控制台输出)。

this.http.post(url, user, {
...httpOptions, // or specifiy it inside httpOptions directly
observe: 'response'
}).subscribe(result => {
console.log(result.status);
});

不过,您遇到的错误是 TypeScript 错误。响应被推断为类型 Object - 显然没有任何 status 属性。通常,类型应该是正确的。您可以通过将响应类型转换为 any 来解决这个问题。

this.http.post(url, user, httpOptions).subscribe(result => {
console.log((result as any).status); // Take the type information away for this statement
});

老实说,我不建议这样做。您应该首先调查为什么将响应推断为 Object

关于angular - 如何在 typescript 中解包 http post 响应中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57172020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com