怎么让angular httpclient.post请求的body参数为键值对的形式?
使用post请求时,传入的body参数是一个对象,得到的结果是这样:
我希望他是这样:
httpService中的代码:
private headers = new HttpHeaders({
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
});
login() {
let bo = {
a: "参数1",
b: "参数2"
};
this.http
.request(
new HttpRequest("POST", "api/search/suggest/multimatch", bo, {
headers: this.headers
})
)
.subscribe(re => {
console.log(re);
});
}
求哪位大佬指点指点。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
主要是因为前后端content-type设置不一致引起的;
在第三个参数中设置
headers: new HttpHeaders({'Content-Type': 'application/x-www-form-urlencoded'})
可以解决此问题
请问下,解决了吗?我目前也是。post后php拿不到参数
代码如上,最重要的代码就是使用 HttpParams 将对象转变为键值对,然后放进 HttpClient 的 post 函数的第二个参数,同时设置 HttpHeaders
使用$.param(data)为body.