将对象从 angular 2 应用程序发布到 Web Api 应用程序(获取不受支持的媒体类型)

posting object from angular 2 application to Web Api application (getting Unsupported Media Type)

我可以使用一些指南,将对象从我的 angular 2 应用程序发送到 Web API。

我知道如何从 Web Api 获取对象到我的 angular 2 应用程序,但似乎无法弄清楚 post 方法是如何工作的,即使我应该使用 http.post 方法。

我的angular2应用有如下方法:

sendUpdatdReservation(updatedReservation: Reservation) {

    var result;
    var objectToSend = JSON.stringify(updatedReservation);

    this.http.post('http://localhost:52262/api/postbookings', objectToSend)
    .map((res: Response) => res.json()).subscribe(res => result = res);

    console.log(result);

}

"updatedReservation"是一个对象,我将其转换为JSON。

可以通过以下地址访问 Web api:

httl://localhost:52262/api/postbookings

Web Api 控制器:

[EnableCors(origins: "*", headers: "*", methods: "*")]
public class PostBookingsController : ApiController
{
    [AcceptVerbs()]
    public bool ConfirmBooking(Booking booking)
    {
        return true;
    }

}

我想做的是发送对象,根据对象具有的更改值更新我的数据库。然后发回 true 或 false 是否是确认,这样我就可以重定向到确认页面。

有人知道不支持的媒体类型错误吗?这是否与我发送的对象不是 api 方法所期望的有关?

希望有人能提供帮助。

发送请求时需要设置Content-Type头:

sendUpdatdReservation(updatedReservation: Reservation) {
  var result;
  var objectToSend = JSON.stringify(updatedReservation);

  var headers = new Headers();
  headers.append('Content-Type', 'application/json');

  this.http.post('http://localhost:52262/api/postbookings', objectToSend, { headers: headers })
     .map((res: Response) => res.json()).subscribe(res => {
       this.result = res;
       console.log(this.result);
     });
}

别忘了导入这个 class:

import {Http,Headers} from 'angular2/http';