我在这里有一个小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
也不会。我甚至尝试添加always
,这也没有用。我错过了什么?
答案 0 :(得分:5)
什么是done
和fail
? The documentation没有列出它们。
(他们是jqXHR
对象的成员函数,但这与调用$.ajax()
时的选项不同。)
也许您分别在寻找success
和error
:
$.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);
}
});
或者,为了保留原来的术语,以下内容(不完全相同但是非常接近):
$.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);
});
答案 1 :(得分:2)
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);
});