【发布时间】:2018-03-09 01:13:10
【问题描述】:
在 Angular 4 中,我怎样才能将 JSON 作为数据发布?
目前,我的邮编是:
let options = {
headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded)
};
let urlSearchParams = new URLSearchParams();
urlSearchParams.append('key', 'value');
let bodyString = urlSearchParams.toString();
return this.http.post(api, bodyString, options);
如您所见,我在 post 之前使用了 application/x-www-form-urlencoded 和 URLSearchParams。 (正在工作)
我认为有一种方法可以只使用JSON。 (例如this.http.post(api, MY_JSON))
我尝试过new HttpHeaders().set('Content-Type', 'application/json'),但没有成功。
以下是我想要的:
let options = {
headers: new HttpHeaders().set('Content-Type', 'application/json)
};
return this.http.post(api, MY_JSON, options);
如果我像上面那样发布,一切都会正确发布,但服务器没有反应。
我应该检查后端吗?
【问题讨论】:
-
URL 搜索参数用于查询字符串,例如
?key=value,在 URL 中。 payload(请求的主体)究竟应该是什么?您可以传递要发布的数组和对象并将它们序列化。 -
如果你使用的是json content-type header,你可以传入json对象作为.post()的第二个参数
-
@jonrsharpe 我添加了更多解释。我知道 URLSearchParams 用于查询字符串。但是,到目前为止,这似乎是我发布角度的唯一方法。如果“以下是我想要的”代码没有问题,我应该检查后端吗?
-
好吧,如果您在测试或浏览器中查看请求,它是否具有您期望的结构?是的,我认为您需要检查服务器。
-
@jonrsharpe 是的,当我在 Chrome 的网络选项卡中发布时,我看到了我期望的结构。只是我不确定我是否在前端做错了什么。谢谢。
标签: angular post content-type angular-http