1

我正试图让 AJAX 调用对我咆哮,所以我正在执行一个完全错误的 URL。出于某种原因,没有调用任何应该执行吠叫 och squicking 的方法。

是什么原因?

$.ajax({
  url: "http://totally.wrong.url",
  dataType: 'jsonp',
  error: function () { alert("bark 1"); },
  failure: function () { alert("bark 2"); }
})
  .fail(function () { alert("squick"); })
  .done(function () { alert("woof"); });

当然,如果我将 URL 更改为指向正确的 WCF 服务,我会得到一个认可的声音。

根据jQuery API,我应该使用faildone语法,但无论哪种方式我都可以。

弃用通知:jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调自 jQuery 1.8 起已弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

4

3 回答 3

3

带有 JSONP 和跨站点请求的 Ajax 不会触发错误回调。

查看这个问题中接受的答案:jQuery Ajax 404 处理

希望这应该解释您需要什么才能使其工作。

于 2013-07-05T08:34:23.453 回答
2

我不知道失败是否应该起作用,但我总是使用“错误”和“成功”来代替。所以试试:

   $.ajax({
      url: "http://totally.wrong.url",
      dataType: 'jsonp',
      error: function () { alert("bark");},
      success: function () { alert("woof");} 
      }
    })
于 2013-07-05T08:20:12.553 回答
1
$.ajax({
  url: "http://totally.wrong.url",
  dataType: 'jsonp',
  **error**: function () { alert("bark"); }
})
  .fail(function () { alert("squick"); })
  .done(function () { alert("woof"); });

error是请求失败回调函数而不是failure

于 2013-07-05T08:18:35.580 回答