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请再次检查我的答案