【发布时间】:2018-02-18 11:20:06
【问题描述】:
我有 ts 文件,我想在组件内创建 POST 方法。不幸的是,我尝试了下面显示的方式,但没有得到积极的结果。
this.http.post("http://localhost:8000/", JSON.stringify({ body: 'String' }), {headers:{'Content-Type': 'application/json'}})
更新
我稍微修改了我的后端逻辑,我意识到我不需要在POST 方法中发送正文。我可以在 URL 参数中发送我的数据。我想发送 GET 请求并将接收到的数据分配给对象 object.sth,该对象需要 Isth[] 类型的对象。此时我的代码如下所示。然而console.log("data: "+object.sth); 赋值后返回data: undefined。
this.http.get("http://localhost:8000/path?sth=exampleurl", headers).map(res => res.json()).subscribe(data => this.data = data);
object.sth = this.data;
【问题讨论】:
-
帖子返回了什么?我期待 json,但状态表明它可能是别的东西?您在标题中指出这一点。
-
@bgraham 我已经更新了我的问题。抱歉更改,但我意识到我可以用另一种方式做到这一点。你知道我现在该如何解决我的问题吗?感谢您的耐心等待!
-
没问题,希望能帮上忙。打字稿/角度调用看起来不错。你说api从邮递员正确返回?是您的构造函数的“http”。它是“Http”还是“HttpClient”。您可以尝试的一件事可能会有所帮助,那就是删除 .map(res=>res.json())。这样,您将获得整个响应对象,包括状态代码等,而不仅仅是有效负载。您可以尝试将其记录到控制台,看看您是否得到任何回报。告诉我,我会尽力提供更多帮助。
-
@bgraham 是的,后端可以与 Postman 一起正常工作,并以 JSON 格式发送数据响应。
-
@bgraham 当我删除
.map(res=>res.json())我得到Type 'Response' is not assignable to type 'IMytype[]'. Property 'includes' is missing in type 'Response'.
标签: javascript json angular typescript firebase