2012-01-11 14 views
1

私はここで少しのjQueryを持っている:jQuery AJAXコールバックがHTTP 500上で実行されるのはなぜですか?

$.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を追加しようとしましたが、どちらもうまくいきませんでした。私は何が欠けていますか?

答えて

5

donefailとは何ですか? The documentationには表示されません。

(。彼らはjqXHRオブジェクトのメンバ関数ですが、それは彼らが$.ajax()への呼び出しのオプションであることと同じではありません)

おそらく、あなたは、それぞれ、successerrorを探しています:

$.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); 
}); 
+3

ああ、私は間違ったドキュメントを読んでいます。 jqXHR.success()、jqXHR.error()、およびjqXHR.complete()コールバックはjQuery 1.8では非推奨になりました。最終的な削除のためにコードを準備するには、jqXHR.done()、jqXHR 「... ajax」メソッドの成功と失敗を非難し、jqXHRのアプローチを使用するよう勧めますか? –

+0

@JakePetroulesなぜでしょうか?これは、[semi-]安定したAPIとカプセル化の素晴らしさです:) 'ajax'関数は、単に「名前付きパラメータ」を取得できるオブジェクトを取り込みます。 –

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); 
}); 
+0

これは競合状態を導入していませんか? –

関連する問題