繁体   English   中英

Angular Web Api 2 不适用于 POST:405 Method Not Allowed

[英]Angular Web Api 2 is not working with POST : 405 Method Not Allowed

我正在将Angularasp.net Api 2一起使用,但是 post 方法不适用于 Angular,而它与 Postman 一起工作正常,我正在使用HttpInterceptor作为用户令牌。

用户服务

saveUser(user: Users) {
    const body: Users = {
      userName: user.userName,
      userPassword: user.userPassword,
      userEmail: user.userEmail,
      userFullname: user.userFullname,
      userFirstname:user.userFullname,
      userLastname:user.userFullname,
      userType:user.userType,
      userPhone :user.userPhone,
      userBio :user.userBio
    }

    return this.http.post(this.rootUrl + '/api/Users/saveUser', body);
  }

请求截图

在此处输入图片说明

错误截图

在此处输入图片说明

接口代码

[Route("api/Users/saveUsers")]
[ResponseType(typeof(User))]
public IHttpActionResult PostUser([FromBody] User user)
{
  db.Users.Add(user);
  db.SaveChanges();
  return CreatedAtRoute("DefaultApi", new { id = user.UserID }, user);
}

我看到您提出请求时的 API 网址是错误的

localhost:57286//api/Users/saveUsers 

所以你应该把你的代码改成

  return this.http.post(this.rootUrl + 'api/Users/saveUsers', body);

在你的控制器中你应该有这样的 HttpPost

如果您使用的是 ASP.Net,则必须更改为此

[HttpPost)]
[Route("api/Users/saveUsers")]
[ResponseType(typeof(User))]

在 ASP.Net Core 中

[HttpPost("api/Users/saveUsers")]
[ResponseType(typeof(User))]

所以你可以删除 Route 并替换为 HttpPost

如果您仍有问题,请告诉我

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM