Typescript Angular2 Http Post未执行

Typescript Angular2 Http Post未执行,typescript,angular,Typescript,Angular,这是我的方法,我从我的服务调用它没有执行 addData(data) { let _body = JSON.stringify(data); let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'}); let url = 'http://localhost:8080/obj/addData'; let requestoptions:RequestOptions =

这是我的方法,我从我的服务调用它没有执行

addData(data) {
    let _body = JSON.stringify(data);
    let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'});

    let url = 'http://localhost:8080/obj/addData';
    let requestoptions:RequestOptions = new RequestOptions({
         method: RequestMethod.Post,
         url: url,
         headers: headers,
         body : _body
    });
    console.log("test");
    return this._http.request(new Request(requestoptions))
        .map((res:Response) => {
            console.log(res);
            return res.json();
        });
}

我添加了console.log以验证是否调用了该方法,因为尽管我调用了一个方法,但没有执行任何操作

,因为
请求
方法不会单独执行。鉴于您已经订阅了
addData
方法,我建议您使用
post
方法,如下所示:

addData(data) {
    let _body = JSON.stringify(data);
    let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'});

    let url = 'http://localhost:8080/obj/addData';

    console.log("test");

    return this._http.post(url, _body, { headers })
        .map((res:Response) => {
            console.log(res);
            return res.json();
        });
}

因为
请求
方法不能单独执行。鉴于您已经订阅了
addData
方法,我建议您使用
post
方法,如下所示:

addData(data) {
    let _body = JSON.stringify(data);
    let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'});

    let url = 'http://localhost:8080/obj/addData';

    console.log("test");

    return this._http.post(url, _body, { headers })
        .map((res:Response) => {
            console.log(res);
            return res.json();
        });
}

在angular2中,只有在您订阅http调用后才会发出http请求。因此,如果您在服务上调用方法的位置添加订阅,如下所示:

// In some component or service using your service
this.service.addData(data).subscribe(resp => console.log(resp));

然后,在本例中,您应该会在控制台中看到发出的请求和发布的响应数据。

在angular2中,只有在您订阅http调用后,才会发出http请求。因此,如果您在服务上调用方法的位置添加订阅,如下所示:

// In some component or service using your service
this.service.addData(data).subscribe(resp => console.log(resp));
然后,在本例中,您应该可以在控制台中看到发出的请求和发布的响应数据