2016-01-25 7 views
9

Ich habe alle Github Fragen nachgeschlagen, und die Stackoverflow Beiträge, aber ich bin nicht in der Lage, es zu bekommen arbeitenAngular2 - http.post (...) Karte ist keine Funktion

(. https://github.com/angular/angular/issues/5632)

(Angular 2 HTTP GET with TypeScript error http.get(...).map is not a function in [null])

Ich habe versucht, verschiedene Importe:

import 'rxjs/add/operator/map';

import 'rxjs/rx';

Aber ich bekomme immer den Fehler http.post(...).map is not a function

Update - Code Kontext

let body = "email=" + email + "&password=" + password; 
let headers = new Headers(); 
headers.append('Content-Type', 'application/x-www-from-urlencoded'); 
this.http.post('http://angular.app/api/v1/auth') // angular.app is laravel backend 
     .map((responseData) => { 
      return responseData.json(); 
     }) 
+0

Können Sie uns Details zu finden geben Moure über den Code um Ihre HTTP-Anruf? Vielen Dank! –

+0

@ThierryTemplier siehe mein Update –

+0

Danke! Fügst du 'HTTP_PROVIDERS' beim Aufruf deiner' bootstrap' Funktion hinzu? –

Antwort

2

Es scheint, dass Angular2 beta.1 RxJS 5.0.0-beta.0 erfordert. Vielleicht ist es die Ursache Ihres Problems.

Wenn ich versuche, dies in meiner package .json Datei:

"dependencies": { 
    "angular2": "2.0.0-beta.1", 
    "systemjs": "0.19.6", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.1", 
    "zone.js": "0.5.10" 
}, 

Und ich habe den Fehler, dass Angular2 RxJS 5.0.0-beta.0 erfordert.

bearbeiten

Sie müssen die HTTP_PROVIDERS im zweiten Parameter Ihrer bootstrap Funktion hinzuzufügen.

Hoffe, es hilft Ihnen, Thierry

+0

Ich habe versucht, Beta.0, immer noch kein Glück, bekomme ich den gleichen Fehler ('ReferenceError: Karte ist nicht definiert') –

+0

@AngeloA haben Sie versucht mit:' Import 'Rxjs/Rx'; '(' Rx' nicht 'rx ')? –

+0

Ja, ich tat, (Hauptstadt R) –

6

Für mich sind die http.post(...).map() funktioniert wie erwartet. Ich muss tun, um die Einfuhr 'rxjs/Rx'

import {Component} from 'angular2/core'; 
import {Http} from 'angular2/http'; 
import 'rxjs/Rx'; 
@Component({ 
    selector: 'my-app', 
    template: ` 
    <h1>{{title}}</h1> 
    <p>Test result {{result | json}}</p> 
    ` 
}) 
export class App implements OnInit{ 
public title = 'my title'; 
public result : String; 

constructor(private _http : Http) { 
    _http.post('http://jsonplaceholder.typicode.com/posts') 
    .map(res => res.json()) 
    .subscribe(
     data => this.result = data, 
     err => console.log('ERROR!!!'), 
    () => console.log('Got response from API', this.result) 
    ); 
    } 
} 

Siehe Plunker Beispiel: http://plnkr.co/edit/vise2zYxZUmr1kW65mNY?p=preview

Hoffnungen dies wird Ihnen helfen, Ihre porblem

+0

Das hat für mich funktioniert. Ich hatte das gleiche Problem mit '" @ angular/core ":"^4.0.0 "," rxjs ":"^5.1.0 "...' – Dev

Verwandte Themen