Javascript Ajax错误结果
我在服务器端使用MVC,通过jQuery.Ajax发送json类型调用函数。 函数结果异常。 我想调用/触发Ajax的error result函数,我应该用return JSON函数返回什么? 例如,假设返回的JSON是从Javascript Ajax错误结果,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我在服务器端使用MVC,通过jQuery.Ajax发送json类型调用函数。 函数结果异常。 我想调用/触发Ajax的error result函数,我应该用return JSON函数返回什么? 例如,假设返回的JSON是从catch部分触发的 MVC函数 public JsonResult Func() { try { var a = 0; return Json(a, JsonRequestBehavi
catch
部分触发的
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');
}
});
引用自:
当来自服务器的响应不是您期望的响应时,将执行错误回调。例如,在这种情况下:
已收到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
});
error
当HTTP响应代码不是200
(成功)时,以及当响应内容不符合预期的contentType
(在您的情况下是json
)时,将调用回调
因此,您必须发送带有一些故障响应代码(例如404
)的HTTP头,或者输出非json
响应内容。在后一种情况下,您可以简单地输出空字符串:
return "";
如果您想在AJAX中触发错误,但仍然知道它被触发的“原因”,以便可以自定义错误消息,请参阅本文: