http发送post请求,我如何把我发送的内容转换为json格式
来源:

ray34ray34
2016-11-22
例如下面这段代码
var body = {"username":"dudu","password":"123"};
var headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
this.http.post(url, body, options).toPromise()
.then(res => res.json())
.catch(err => {
this.handleError(err);
});
通过上面的方法我可以访问服务器,但是传过去的值用json解析以后是null,请问我如何把body这个数组转换为json格式?
2回答
-
Parry
2016-11-23
是不是接收的那边有问题?
012016-11-23 -
ray34ray34
提问者
2016-11-23
这个我找到原因了,因为我后台用的spring框架来获取参数,我以前用的ajax的方式可以,对比了一下,需要改两个地方
1.修改Content-Type为application/x-www-form-urlencoded; charset=UTF-8
2.请求参数的格式 key=value的格式,如果,多个,则使用&连接 例如 : "recordCode=xxxx&password=123"
具体是这样写的:
public httpPostNoAuth(url: string, body: any) {
var headers = new Headers();
headers.append('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
let options = new RequestOptions({ headers: headers });
return this.http.post(url, "recordCode=xxxx&password=1", options).toPromise()
.then(res => res.json())
.catch(err => {
this.handleError(err);
});
}
10
相似问题