The error
的一部分$.ajax
仅当返回的状态代码不是以下任何内容时才会触发调用200 OK
。在您的情况下,您将返回一个明文响应,因此将是200
。您可以像这样更改此行为:
try {
// do logic here
return "OK";
}
catch (Exception exc) {
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Bad Request");
}
error: function (jqXHR, textStatus, errorThrown) {
errorNotification(textStatus);
}
您可以更改HttpStatusCode
任何适合您需要的东西。
或者,您可以保留200
响应并返回带有标志的 JSON,以指示请求是否成功:
[HttpPost]
public ActionResult EditPackage(int id, string newPkgName)
{
try {
//do logic here
return Json(new { Success = true, Message = "OK"});
}
catch (Exception exc) {
return Json(new { Success = false, Message = "An error occurred, please try later! " + exc.Message });
}
}
然后你可以删除error
处理程序,并检查标志的状态success
处理程序:
success: function(response) {
if (response.Success) {
location.reload(true);
successNotification("Package edited successfuly!");
}
else {
errorNotification(response.Message);
}
},