出现400状态码的原因可能是请求的参数格式不正确或者请求的路由路径不匹配。下面是一个可能的解决方法:
[Route("[controller]")]
特性,然后在具体的请求方法上添加[Route("[action]")]
特性,例如:[Route("api/[controller]")]
[ApiController]
public class MyController : ControllerBase
{
[HttpGet]
[Route("GetData")]
public ActionResult GetData()
{
// 处理请求逻辑
return Ok();
}
}
url
属性指定具体的路由路径。例如:$.ajax({
url: '/api/My/GetData',
type: 'GET',
success: function(response) {
// 处理响应数据
},
error: function(xhr, status, error) {
// 处理错误
}
});
data
属性指定参数的格式。例如:$.ajax({
url: '/api/My/GetData',
type: 'GET',
data: { id: 1 },
success: function(response) {
// 处理响应数据
},
error: function(xhr, status, error) {
// 处理错误
}
});
application/json
,并且请求体的格式正确。例如:$.ajax({
url: '/api/My/GetData',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ id: 1 }),
success: function(response) {
// 处理响应数据
},
error: function(xhr, status, error) {
// 处理错误
}
});
通过检查以上几个方面,应该能够解决Ajax调用无法到达控制器并返回400状态码的问题。