“为什么两者都不做?”;“完成”;或;失败;jQuery AJAX回调在HTTP 500上执行?
我这里有一个小jQuery:“为什么两者都不做?”;“完成”;或;失败;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 ()
$.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);
});