Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“为什么两者都不做?”;“完成”;或;失败;jQuery AJAX回调在HTTP 500上执行?_Jquery_Ajax - Fatal编程技术网

“为什么两者都不做?”;“完成”;或;失败;jQuery AJAX回调在HTTP 500上执行?

“为什么两者都不做?”;“完成”;或;失败;jQuery AJAX回调在HTTP 500上执行?,jquery,ajax,Jquery,Ajax,我这里有一个小jQuery: $.ajax({ url: $this.fileUploadUrl, data: 'url=' + encodeURIComponent(file.name), type: 'POST', done: function () { file.status = plupload.DONE; $this.updateFileStatus(file); }, fail: function ()

我这里有一个小jQuery:

$.ajax({
    url: $this.fileUploadUrl,
    data: 'url=' + encodeURIComponent(file.name),
    type: 'POST',
    done: function () {
        file.status = plupload.DONE;
        $this.updateFileStatus(file);
    },
    fail: function () {
        file.status = plupload.FAILED;
        $this.updateFileStatus(file);
    }
});

如果服务器返回HTTP 500响应,
fail
回调不会运行,
done
也不会运行。我甚至尝试添加
始终
,但也没有成功。我缺少什么?

什么是
完成的
失败的
?没有列出它们

(它们是
jqXHR
对象的成员函数,但与调用
$.ajax()
中的选项不同)

也许您正在分别寻找
成功
错误

$.ajax({
    url: $this.fileUploadUrl,
    data: 'url=' + encodeURIComponent(file.name),
    type: 'POST',
    success: function(data, textStatus, jqXHR) {
        file.status = plupload.DONE;
        $this.updateFileStatus(file);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        file.status = plupload.FAILED;
        $this.updateFileStatus(file);
    }
});
或者,为了保留您原来的术语,请使用以下术语(虽然不完全相同,但非常接近):


什么是
完成
失败
?没有列出它们

(它们是
jqXHR
对象的成员函数,但与调用
$.ajax()
中的选项不同)

也许您正在分别寻找
成功
错误

$.ajax({
    url: $this.fileUploadUrl,
    data: 'url=' + encodeURIComponent(file.name),
    type: 'POST',
    success: function(data, textStatus, jqXHR) {
        file.status = plupload.DONE;
        $this.updateFileStatus(file);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        file.status = plupload.FAILED;
        $this.updateFileStatus(file);
    }
});
或者,为了保留您原来的术语,请使用以下术语(虽然不完全相同,但非常接近):


啊,我把文件看错了。我看到“弃用通知:jqXHR.success()、jqXHR.error()和jqXHR.complete()回调将在jQuery 1.8中弃用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。。。他们是否也打算贬低
ajax
方法的成功和失败,并鼓励我们使用jqXHR方法?@jakepetroles他们为什么会这样做?这就是[半]稳定的API和封装的辉煌:)ajax的
ajax
函数只是接收一个对象来获取“命名参数”。啊,我看错了文档。我看到“弃用通知:jqXHR.success()、jqXHR.error()和jqXHR.complete()回调将在jQuery 1.8中弃用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。。。他们是否也打算贬低
ajax
方法的成功和失败,并鼓励我们使用jqXHR方法?@jakepetroles他们为什么会这样做?这就是[半]稳定的API和封装的辉煌:)ajax的
ajax
函数只是接收一个对象来获取“命名参数”。这不是引入了竞争条件吗?这不是引入了竞争条件吗?
var request = $.ajax({
  url: $this.fileUploadUrl,
  type: "POST",
  data: 'url=' + encodeURIComponent(file.name)
});

request.done(function() {
  file.status = plupload.DONE;
  $this.updateFileStatus(file);
});

request.fail(function() {
  file.status = plupload.FAILED;
  $this.updateFileStatus(file);
});