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

是不是接收的那边有问题?

0
1
ray34ray34
多谢老师,这边我已经找到答案了!
2016-11-23
共1条回复

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);

        });

    }


1
0

Ionic飞速上手的跨平台App开发

以HTML5移动App开发框架Ionic,开发不受平台限制的App

1314 学习 · 640 问题

查看课程