Skip to main content
 首页 » 编程设计

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

2024年02月25日42soundcode

我将 Angular 与 asp.net Api 2 一起使用,但 post 方法无法与 Angular 一起使用,而它与 Postman 一起工作正常,我正在使用 HttpInterceptor 用于用户 token 。

用户服务

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

请求截图

错误截图

API 代码

[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 url是错误的

localhost:57286//api/Users/saveUsers  

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

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

在你的 Controller 中你应该有这样的 HttpPost

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

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

在 ASP.Net Core 中

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

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

如果还有问题请告诉我