【问题标题】:Angular Http PUT not sending request to Web-APIAngular Http PUT 未向 Web-API 发送请求
【发布时间】:2018-06-13 18:11:15
【问题描述】:

我有一个使用 Entity Framework 的 c# WEB API - 我正在尝试通过我的 Angular 前端发出一个 put 请求以模拟“签入”功能,但该请求没有通过。

这是我的 Web api 方法

   [HttpPut("checkin/{id}")]
    [AuthorizeRoles(Role.Administrator, Role.User)]
    public async Task<IActionResult> CheckIn(int id)
    {
        var reservation = await context.Reservations.FindAsync(id);
        var username = User.Identity.Name;

        if (reservation == null)
            return NotFound();

        // Ensure user is checking-in their own reservation and its not already checked-in
        if (reservation.UserName == username && reservation.CheckInDate == null)
        {
            reservation.CheckInDate = DateTime.Now;

            var count = await context.SaveChangesAsync();

            if (count < 1)
                return StatusCode((int)HttpStatusCode.InternalServerError);
        }

        return Ok();
    }

这是我发起请求的两个 .ts 文件 -注意:在第二种方法中,我决定手动传递 ID 以进行测试

-checkIn(id: number){
    if (confirm('Would you like to check in')) {
     this.reservationService.checki(7);
    };
  }

reservationservice.ts

 checki(id: number) {
    const headers = new Headers();
    const url = `${this.url}+/checkin/${7}`;
    return this.http
             .put(url, JSON.stringify(7), {headers: headers})
             .map(res => res.json());
  }

【问题讨论】:

  • 最近在服务器上遇到了类似的 PUT 请求问题。事实证明,WebDAV 正在拦截请求,并且通常会让自己感到痛苦。 gavincoates.com/Archive/2016/07/…

标签: angular entity-framework api put http-method


【解决方案1】:

使用 Angular HTTP 客户端,所有 Http 请求都是 Observable,这意味着您需要订阅它们才能调用它们。

因此,在您的签入功能中,您需要执行以下操作:

-checkIn(id: number){
  if (confirm('Would you like to check in')) {
   this.reservationService.checki(7).subscribe(res => {});
  };
}

无需显式处理响应。

就处理 put 的后端而言,我会看看这个答案,无论如何我都不是 c# 专家。 https://stackoverflow.com/a/32835329/8350917

【讨论】:

  • 我进行了指定的更改,请求不再挂起 - 但是,我不相信该方法已执行,因为我的 DbContext 仍然相同 - 我已发布完整的 checkIn web api如果您能检查一下,我将不胜感激
猜你喜欢
  • 2023-04-01
  • 2016-11-15
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
相关资源
最近更新 更多