415不支持的媒体类型; Angular2到API

时间:2017-04-18 13:22:05

标签: api angular http-post

我是角度2的新手,我遇到了一个无法找到解决方案的问题: 当我尝试从角度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 请帮助&如果需要更多细节,请告诉我。

2 个答案:

答案 0 :(得分:1)

documentation您定义了标头,但没有使用它。将您的代码更改为

for

答案 1 :(得分:0)

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