【发布时间】:2020-04-29 14:23:10
【问题描述】:
我们使用 React 和 redux 模板创建了一个 .Net 核心 Web API 项目。现在我们想调用一个包含参数的 Http Get 方法。我是反应和 API 概念的新手,那么该怎么做呢?我尝试过如下操作,它无法正常工作或始终显示 401 或 415 错误。我哪里做错了?
与 Axios 反应,
var getaproveUserDetails = axios.
get("/users/getapprove", {
params: { email: EmailOfUser }
}
).then(function (response) {
var res = response.json();
console.log("response", 'res: ' + res.message, response.message);
})
.catch(function (error) {
console.log("error", error);
});
我的 API 方法,
[AllowAnonymous]
[HttpGet("getapprove/{email}")]
public async Task<IActionResult> GetApprove([FromQuery]string Email)
{
if (Email == null)
return BadRequest("Email is Null!.");
var user = _userService.GetByEmail(Email);
if (user == null)
return NotFound();
return Ok(user);
}
我的控制器路由,
[Authorize]
[Route("[controller]")]
public class UsersController {... ...
【问题讨论】:
-
什么时候收到 401,什么时候收到 415 HTTP 状态码?您以错误的方式向请求提供参数。您应该以这种方式发出 get 请求:
axios.get("/users/getapprove/${EmailOfUser}").then()..并删除[FromQuery]属性。第二种方法是保留您的代码并从[HttpGet]属性中删除/{email}部分。
标签: reactjs api asp.net-core parameters axios