0

所以我有以下失败的ajax查询。ajaxError 被调用并引发异常。但不幸的是,没有捕获到异常。任何想法如何抓住它?

try {
  function ajaxError(request, type, message) {
    throw 'ajaxerror ' + type + ' ' + message;
  }

  jQuery.ajax({
      url: 'http://nonexisting-example.com',
      error: ajaxError,
  });
}
catch (error) {
  alert('This: ' + error);
}
4

1 回答 1

0

这是因为 ajax 是异步的,并且当您的 ajaxError 函数实际上被调用时,catch 块已经通过。如果您想捕获在 ajax 调用期间出现的错误,您可以执行以下操作:

function ajaxError(request, type, message) {
    try {
      throw 'ajaxerror ' + type + ' ' + message;
    } catch (error) {
      alert('This: ' + error);
    }

  }
  jQuery.ajax({
      url: 'http://nonexisting-example.com',
      error: ajaxError,
  });

或者您可以应用发布/订阅模式来捕获您的异步错误

于 2013-03-19T10:36:32.200 回答