我正在學習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