我正在学习jQuery的web api。如何用ajax返回“失败”请求?
这里是我的插件做出POST请求:
$.postAPI = function (url, data) {
let defer = $.Deferred();
let onSuccess = function (data) {
defer.resolve(data);
};
let onError = function (error) {
defer.reject(error);
};
$.ajax({
url: url,
method: 'POST',
data: data || null
}).done(onSuccess).fail(onError);
return defer;
};
API控制器:
[Route("api/user")]
public class UserApiController : Controller
{
[HttpPost("{userid?}")]
public IActionResult GetData(string userid)
{
if (!string.IsNullOrEmpty(userid))
{
return Ok(userid);
}
return new StatusCodeResult(401);
// also try with
// return BadRequest();
// return Unauthorized();
}
}
测试:
$.postAPI('/api/user/getdata').done(function (data) {
console.log('success:', data);
}).fail(function (e) { console.log('fail:', e); });
但我一直有这个日志:
成功:getdata
我想让请求变成fail
。因此,日志可能:
失败:...
我的问题:我如何才能做到这一点?
UPDATE:
我一直在努力,这条线(基于评论)地址:
Response.StatusCode = 404;
的方法。但问题没有解决。
为了您的请求失败(或错误出)后端必须返回一个错误代码,如404或500,我不知道jQuery可以模拟此。尝试改变你的后端代码。 – silkfire
您需要从服务器更改200以外的返回HTTP响应代码 –
@AgamBanga我试着添加'Response.StatusCode = 404;'但它仍然不起作用。我仍然有相同的日志。 – Vayne