2016-10-02 4 views
1

Ich versuche, eine HTTP-Post-Anfrage an Back-End-Rest API senden. Hier ist der Code von http-Service:HTTP-Post-Anfrage funktioniert nicht

@Injectable() 
export class requestService{ 

    constructor(private _http:Http){} 

    postRequest(request:any){ 
     console.log("Here is post") 
     const body=JSON.stringify(request); 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 

     this._http.post('http://localhost:8080/requests',body,options).map(res=> console.log(res.headers)); 

    } 

} 

Ich bin sicher, dass mein Backend funktioniert gut. Ich habe erfolgreich eine Postanfrage von Postboten gesendet. Aber wenn ich die Anfrage mit meinem Service sende, passiert nichts. Es gibt keinen Fehler. Außerdem wird das Objekt nicht auch im Back-End aufgezeichnet.

Also, was ist das Problem?

+0

versuchen, dieses ---- 'this._http.post ('http: // localhost: 8080/Anfragen', body, Optionen) .map (res => console.log (res.data)); ' – micronyks

+0

Ich weiß nicht eckig, aber bist du dir sicher y Oder fangen Sie sogar Fehler? Haben Sie irgendwo einen Fehlerrückruf? –

+0

@micronyks es funktioniert nicht. –

Antwort

3

Observables sind faul. Ohne zu abonnieren, werden sie nichts tun.

Entweder verwenden subscribe() statt map()

@Injectable() 
export class requestService{ 

    constructor(private _http:Http){} 

    postRequest(request:any){ 
     console.log("Here is post") 
     const body=JSON.stringify(request); 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 

     this._http.post('http://localhost:8080/requests',body,options).subscribe(res=> console.log(res.headers)); 

    } 
} 

oder die beobachtbare zurückzukehren und bei Anrufer-Website abonnieren:

@Injectable() 
export class requestService{ 

    constructor(private _http:Http){} 

    postRequest(request:any){ 
     console.log("Here is post") 
     const body=JSON.stringify(request); 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 

     return this._http.post('http://localhost:8080/requests',body,options).map(res=> console.log(res.headers)); 

    } 
} 
this.requestService.postRequest.subscribe(val => console.log(val)); 
Verwandte Themen