web-dev-qa-db-ja.com

415サポートされていないメディアタイプ。 Angular2からAPI

私はangular 2を初めて使用し、解決策を見つけることができない問題に直面しています:angular 2からAPIに投稿しようとすると、 -415サポートされていないメディアタイプ。

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

そして私のコントローラーコード:

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

本体からデータを取得しないようにコントローラーコードを変更すると、機能しますがNULLを参照します。

私のAPIコールのスクリーンショット: enter image description here 詳細が必要な場合は、サポートしてください。

9
Orenger

enter image description here ヘッダーを定義しましたが、使用しませんでした。コードを次のように変更します

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

httpリクエストでもヘッダーと本文を使用します。 creadでは、onSubmit関数の値パラメーターを使用します。

次のコードを使用

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