gpt4 book ai didi

jquery - Ajax 失败不会触发,而错误则会触发

转载 作者:行者123 更新时间:2023-12-01 06:18:54 25 4
gpt4 key购买 nike

单击按钮时我有以下 js 代码:

$("#processCategories").click(function () {
console.log('HERE');
$.ajax({
url: ajaxUrl, // point to server-side PHP script
data: {action: 'processCategories'},
type: 'post',
done: function () {
console.log('SUCCESS');
//location.reload();
},
fail: function (msg) {
console.log('FAIL');
},
always: function (msg) {
console.log('ALWAYS');
}
});
});

在我的 php 文件中,我添加了下一行:

header('HTTP/1.0 404 Not found');
die();

我也尝试过禁止。

因此,控制台记录:HERE,但不是 FAIL,也不是 ALWAYS

我正在使用这个:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

documentation说:

Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are deprecated as of jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

如果我将它们重写为 errorcomplete,则它们都在运行。

我错过了什么?

更新

.done 也不会运行。 成功确实如此。

最佳答案

您将 jqXHR 方法与 $.ajax 选项混淆了。

$.ajax返回一个 jqXHR 对象,并且该对象将有一个失败方法,所以你可以这样做:

$.ajax({
url: ajaxUrl, // point to server-side PHP script
data: {action: 'processCategories'},
type: 'post'
}).fail(function (msg) {
console.log('FAIL');
});

$.ajax 选项采用处理成功和错误条件的函数:

  • 完成
  • 错误
  • 成功

jqXHR 方法具有相同的功能:

  • 完成
  • 失败
  • 永远
  • 然后
  • 成功(已弃用)
  • 错误(已弃用)
  • 已完成(已弃用)

关于jquery - Ajax 失败不会触发,而错误则会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com