这个问题可能是由于不同的请求方式(Ajax和Fetch)导致的。为了解决这个问题,我们需要在ASPNET MVC应用程序中进行如下更改:
// 统一使用“Ok”返回HTTP 200状态码 public IActionResult GetEmployee() { var employee = _employeeRepository.GetEmployee(); return Ok(employee); }
// 使用“BadRequest”返回HTTP 400状态码 public IActionResult AddEmployee(Employee employee) { if (employee == null) { return BadRequest(); } _employeeRepository.AddEmployee(employee); return Ok(); }
fetch('/api/employee') .then(response => { if (response.ok) { return response.json(); } else { throw new Error('Something went wrong.'); } }) .then(data => console.log(data)) .catch(error => console.log(error));
$.ajax({ url: '/api/employee', type: 'GET', success: function(employee) { console.log(employee); }, error: function(xhr, status, error) { console.log(xhr.status); } });
通过这些更改,应用程序将始终以统一的方式返回状态码,无论是使用Ajax还是Fetch发送请求。