web-dev-qa-db-fra.com

415 Type de support non pris en charge; Angular2 à l'API

je suis nouveau sur angular 2 et je suis confronté à un problème qui ne trouve pas de solution: Lorsque j'essaie de poster de angular 2 à API, je reçois - 415 types de support non supportés.

Code angulaire 2: 

 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)}
      );
  }

Et mon code de contrôleur:

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

quand je change le code du contrôleur pour ne pas obtenir les données du corps, cela fonctionne mais se réfère à NULL.

Capture d'écran de mon appel API:  enter image description here S'il vous plaît aider et laissez-moi savoir si plus de détails nécessaires.

6
Orenger

 enter image description here Vous avez défini les en-têtes, mais vous ne l'avez pas utilisé. Changez votre code en

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

utiliser en-tête et corps également dans la requête http. in cread utilise le paramètre de valeur de la fonction onSubmit.

utiliser le code suivant 

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