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));
然后,在本例中,您应该可以在控制台中看到发出的请求和发布的响应数据