2017-01-24 3 views
1

Ich erstelle einen RESTful-Dienst in meiner Angular 2-App, um eine Verbindung zu einem Remote-Back-End herzustellen.Angular 2-Fehler: Die angegebenen Parameter stimmen nicht mit einer Signatur des Anrufziels überein.

Meine GET (all)/POST-Methoden scheinen in Ordnung, und meine PUT-Methode scheint in Ordnung zu sein, aber meine GET (Einzelobjekt) -Methode, die genau wie die PUT-Methode aussieht, löst den obigen Fehler aus: Mitgelieferte Parameter Keine Übereinstimmung mit einer Signatur des Anrufziels

Dies wirft einen Fehler bei der Kompilierung:

getCourse (course: Course): Observable<Course> { 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    let courseUrl = this.BaseUrl + '/' + course.id; 
    return this.http.get(courseUrl, { course }, options) 
       .map(this.extractData) 
       .catch(this.handleError); 
    } 

Dies funktioniert:

put(course: Course): Observable<Course> { 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    let courseUrl = this.BaseUrl + '/' + course.id; 
    return this.http.put(courseUrl, { course }, options) 
       .map(this.extractData) 
       .catch(this.handleError); 
    } 

Gedanken? Was mache ich falsch?

Antwort

2

get unterstützt keine body Parameter

return this.http.get(courseUrl, { course }, options) 

sollte

return this.http.get(courseUrl, options) 

https://angular.io/docs/ts/latest/api/http/index/Http-class.html#!#get-anchor

get(url: string, options?: RequestOptionsArgs) : Observable

https://angular.io/docs/ts/latest/api/http/index/Http-class.html#!#put-anchor

sein 210

put(url: string, body: any, options?: RequestOptionsArgs) : Observable

+1

Unmittelbar nachdem ich die Frage gestellt hatte, erkannte ich, dass dies das Problem war. Thaks! –

Verwandte Themen