【发布时间】:2019-02-03 18:36:13
【问题描述】:
我有以下 http POST 试图返回到另一个函数:
return this.http.post(ENDPOINT_URL + 'MY-JWT-VALIDATION' + token, {observe: 'response'}, {headers: headers})
.pipe(map( (res) => { return res; } ));
但是,我从返回中得到的是一个 Observable 对象,其中包含所有数据与调用的实际响应。我已经尝试从 map 更改为 tap 到 subscribe 以及所有内容。
Google 似乎推断我这样做是正确的,但由于某种原因,我无法得到回复……即使我只是返回一个静态字符串。
在这个问题上卡了一个小时。我的其他 http.post 调用似乎工作正常,并且带有相同的逻辑,尽管我首先将它们传递给一个函数。
我是否忽略了什么?
【问题讨论】:
-
那么,那个sn-p的返回类型是
Observable<Object>,对吧?你期望什么?Observable<HttpResponse<Object>>?不确定您对 具有所有数据的 Observable 对象与调用的实际响应的含义 -
好吧,如果您正在观察响应
{observe: 'response'},您当然会收到响应中的所有数据;)删除它以获取数据。 -
@AJT_82 不能这样,因为第三个参数是请求的选项。应用默认观察。
-
@Jota.Toledo - 我的代码中的返回类型(来自帮助工具栏)显示为
Observable<string>,但当我打印出来时它是Observable<object>的对象。我希望收到来自服务器的实际 JSON 响应,就像我的所有其他http.post请求一样。该 JSON 应该类似于我从我的 REST API 测试程序中获得的内容,例如:{ "code": "jwt_auth_no_auth_header", "message": "Authorization header not found.", "data": { "status": 403 } }(所以是的,我相信Observable<HttpResponse<Object>>是正确的,我需要快速检查文档) -
@Jota.Toledo 你说得对,我看起来太仓促了,只关注
{observe: 'response'}:D
标签: angular http rxjs angular-httpclient