it-swarm.com.de

415 Nicht unterstützter Medientyp; Angular2 zu API

ich bin neu bei eckig 2 und ich stehe vor einem Problem, das ich nicht finden kann. Wenn ich versuche, von eckig 2 an API zu schreiben, bekomme ich - 415 nicht unterstützte Medientypen.

Winkel 2-Code: 

 onSubmit(value: any) {
    // console.log(value.message);
    let headers = new Headers({ 'Content-Type': 'application/json'});
    let options = new RequestOptions({ headers: headers });
    let creds = 'statusuknown';
    let body = JSON.stringify(creds);
    this.http.post('http://localhost:1318/api/ActionItem', creds)
      .subscribe(
        () => {console.log('Success')},
        err => {console.error(err)}
      );
  }

Und mein Controller-Code:

 // POST api/actionitem
        [HttpPost]
        public ActionItem Post( [FromBody]string str)// _id, string _status)
        {
            ActionItem item = new ActionItem( 313, str);
            return item;
        }

wenn ich den Controller-Code so ändere, dass keine Daten vom Hauptteil abgerufen werden, funktioniert er, verweist jedoch auf NULL.

Mein API-Aufruf-Screenshot:  enter image description here Bitte helfen Sie mir und lassen Sie mich wissen, wenn weitere Details erforderlich sind.

6
Orenger

 enter image description here Sie haben Header definiert, aber nicht verwendet. Ändern Sie Ihren Code in

this.http.post('http://localhost:1318/api/ActionItem', body, options).map(response => response.json())
      .subscribe(
        () => {console.log('Success')}
      );
1
Victor Bredihin

verwenden Sie Header und Body auch in der http-Anfrage. in cread use value-Parameter der Funktion onSubmit.

verwenden Sie folgenden Code 

let creds=JSON.Stringify(value);

this.http.post('http://localhost:1318/api/ActionItem', creds, options)
     .map((res: Response) => res.json()).subscribe(res => {
       this.result = res;
       console.log(this.result);
     });
0
Jeetendra negi