Javascript Ajax错误结果

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

我在服务器端使用MVC,通过jQuery.Ajax发送json类型调用函数。 函数结果异常。 我想调用/触发Ajax的error result函数,我应该用return JSON函数返回什么? 例如,假设返回的JSON是从
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中触发错误,但仍然知道它被触发的“原因”,以便可以自定义错误消息,请参阅本文: