我在服务器端使用MVC并通过jQuery.Ajax发送json类型来调用函数。
函数结果有异常。
我想调用/触发Ajax的错误结果函数,我应该用返回的JSON函数发回什么?
例如,让我们说从catch
部分触发返回JSON。
MVC功能
public JsonResult Func()
{
try
{
var a = 0;
return Json(a, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
FxException.CatchAndDump(ex);
return Json(" ", JsonRequestBehavior.AllowGet);
}
}
JavasScript调用
$.ajax({
url: '../Func',
type: 'GET',
traditional: true,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data) {
alert('s');
},
error: function (data) {
alert('e');
}
});
答案 0 :(得分:0)
引自this answer:
当服务器的响应不符合您的预期时,将执行错误回调。例如,在这种情况下:
已收到HTTP 404/500或任何其他HTTP错误消息 收到了不正确类型的数据(即您已经预期JSON,您已收到其他内容)。
当服务器的响应不符合您的预期时,将执行错误回调。例如,在这种情况下:
已收到HTTP 404/500或任何其他HTTP错误消息 收到了不正确类型的数据(即您预期JSON,您已收到其他内容)。 在您的情况下,数据是正确的(这是一个JSON消息)。如果要根据接收数据的值手动触发错误回调,则可以非常简单地完成。只需将错误的匿名回调更改为命名函数。
function handleError(xhr, status, error){
//Handle failure here
}
$.ajax({
url: url,
type: 'GET',
async: true,
dataType: 'json',
data: data,
success: function(data) {
if (whatever) {
handleError(xhr, status, ''); // manually trigger callback
}
//Handle server response here
},
error: handleError
});
答案 1 :(得分:0)
error
(成功)时,以及当响应内容不符合您200
的预期contentType
时,会调用 json
回调情况下。
因此,您必须发送带有一些失败响应代码的HTTP标头(例如404
)或输出非json
响应内容。在后一种情况下,您只需输出空字符串:
return "";
答案 2 :(得分:0)
如果您想在AJAX中触发错误,但仍然知道“为什么”触发了该错误,以便您可以自定义错误消息,请参见这篇文章: