Angular 2 http post请求未被调出

Chr*_*isZ 2 javascript observable angular

我使用角度2来发出获取请求和发布请求.我的get请求正常,但对于我的帖子,在查看Firebug Net面板时没有看到请求.

代码方法如下所示.我也有订阅方法从组件类调用它们.

import {Injectable} from "angular2/core";
import {Http, Response, Headers, RequestOptions,  Jsonp, URLSearchParams} from "angular2/http";
import { Observable }     from 'rxjs/Observable';
import 'rxjs/add/operator/map'; 

 @Injectable()
export class MyService{
    constructor (private _http: Http){}  


testPost(){      

    var json = JSON.stringify({"userId": 111, "givenName": "CZ"});
    var body = "json="+json;
    var headers = new Headers({ 'Content-Type': 'application/json' });
    var options = new RequestOptions({ headers: headers });

    return this._http.post("http://mylocal.post.url", body, options)
        .map(this.extractData)
        .catch(this.handleError);

}

  private extractData(res: Response) {
    alert("test whether this method is reached");

    let body = res.json();
    return body.data || { };
  }

  private handleError (error: any) {
    alert("test whether this method is reached");

    let errMsg = (error.message) ? error.message :
      error.status ? `${error.status} - ${error.statusText}` : 'Server error';
    console.error(errMsg); // log to console instead
    return Observable.throw(errMsg);
  }     

 //testGet method is running well
testGet(link:string){

    return this._http.get(link)
    .map(res => res);

}     
}
Run Code Online (Sandbox Code Playgroud)

我的订阅方法onTestPost(),它被分配给页面上的一个按钮.

onTestPost(){
    this.myService.testPost()
    .subscribe(
        data => this.getData = JSON.stringify(data),
        error => alert(error),
        () => console.log("Finished")            
        );
}
Run Code Online (Sandbox Code Playgroud)

我在两个辅助方法的开头放了一个警告声明.没有达到任何警报.在使用Firebug进行调试时,我没有看到任何调用我本地帖子的请求.

虽然我的testGet方法正常工作,但我只是不知道testPost缺少什么.

tom*_*bak 11

我认为你的订阅方法是这里的问题.请确保subscribe被叫.

"这种观察结果很冷,这意味着在订阅观察者之前,请求不会出现."

请参阅https://angular.io/docs/ts/latest/guide/server-communication.html