我在asp.net mvc下面有脚本:
$.ajax({
url: "/MyController/MyAction/",
type: 'POST',
data: $("#Myform").serialize(),
success: function () {
// Do something
},
error: function () {
// Do something
},
complete: function () {
// Do something
},
beforeSend: function () {
// Do someting
}
});
此脚本调用控制器中的操作。控制器执行一些操作,有时候事情还可以。如果一切顺利,我希望成功并在脚本中完成选项执行。直到这里没有问题,但如果在控制器中有错误或者我想告诉脚本:“嘿,有错误!”然后在要执行的脚本中的错误选项。这该怎么做?我是否必须将某些内容从控制器返回到脚本以指示已生成错误以便脚本中的错误选项被执行?
答案 0 :(得分:2)
将HTTP status code设置为控制器中的4xx或5xx。
这会让你最终陷入错误回调。
答案 1 :(得分:1)
就AJAX请求而言,错误是获取页面的传输/网络错误。
如果要返回错误,请将其返回到数据中,然后解析该错误并在成功部分内执行错误函数(如果检测到错误)。或者,正如约翰所说,从服务器返回HTTP错误代码。
答案 2 :(得分:1)
在你的行动中使用try catch,
public ActionResult Sample()
{
try
{
return Json(new{status="success"},JsonRequestBehavior.AllowGet);
}
catch(Exception ex)
{
return Json(new{status="failed"},JsonRequestBehavior.AllowGet);
}
}
在ajax调用成功检查中使用条件
if(data.status=='success')
{
alert('All Happies');
}
else
{
alert('error came');
}
希望这有帮助。