Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Angular Web Api 2无法使用POST:405方法不允许_C#_Angular_Typescript_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# Angular Web Api 2无法使用POST:405方法不允许

C# Angular Web Api 2无法使用POST:405方法不允许,c#,angular,typescript,asp.net-core,asp.net-core-mvc,C#,Angular,Typescript,Asp.net Core,Asp.net Core Mvc,我将Angular与asp.net Api 2一起使用,但post方法不适用于Angular,而它适用于Postman,我将HttpInterceptor用于用户令牌 用户服务 saveUser(user: Users) { const body: Users = { userName: user.userName, userPassword: user.userPassword, userEmail: user.userEmail, us

我将
Angular
asp.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);
  }
请求屏幕截图

错误屏幕截图

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);
在控制器中,您应该有这样的HttpPost

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

[HttpPost)]
[Route("api/Users/saveUsers")]
[ResponseType(typeof(User))]
在ASP.Net内核中

[HttpPost("api/Users/saveUsers")]
[ResponseType(typeof(User))]
因此,您可以删除路由并替换为HttpPost


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

谢谢您的更正,我已更正了url问题,但[HttpPost(“api/Users/saveUsers”)]不起作用错误消息:httpgetattribute不包含构造函数您是否使用ASP.Net Core或ASP.Net?我正在使用ASP.Net web api 2请再次检查我的答案