【问题标题】:jQuery AJAX $.ajax and $.get not alerting on either success or failure conditionsjQuery AJAX $.ajax 和 $.get 不会在成功或失败条件下发出警报
【发布时间】:2014-08-15 22:35:04
【问题描述】:

我一直在用我的 loadTable.php 文件尝试一些 jQuery AJAX,它会回显 JSON 输出。但是,我似乎无法让 $.ajax 或 $.get 工作。以下代码根本不会发出任何警报,即使我将警报功能置于成功和失败条件下也是如此。显然这不是最终功能,但即使使用这个简单的警报功能,它也不起作用。我做错了什么?

$('#tableLoad').click(function () {
  $('#sortable tbody').html('');

  $.ajax({
    type: 'GET',
    url: 'loadTable.php',
    dataType: 'json',
    data: data,
    success: function (data) {
      alert('Success!');
    },
    failure: function () {
      alert('Something went wrong!');
    }
  });
})

【问题讨论】:

标签: javascript jquery ajax json get


【解决方案1】:

使用errorfailure 不是有效选项,请参阅$.ajax

error: function (jqXHR, textStatus, errorThrown) {
  alert('Something went wrong!');
}

【讨论】:

    【解决方案2】:

    如果您使用 jQuery >=1.5 $.ajax 会返回一个承诺,任何延迟对象也是如此。这意味着您可以将成功或错误函数链接到 ajax 调用的末尾。

    但是,它们被称为完成和失败,而不是成功或错误。在下面的示例中,“always”完全按照它所说的去做,并且无论成功或失败都被调用。

    $.ajax( "example.php" )
       .done(function() {
         alert( "success" );
       })
       .fail(function() {
         alert( "error" );
       })
       .always(function() {
         alert( "complete" );
       });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2021-10-19
      • 2011-09-30
      相关资源
      最近更新 更多