jquery 延迟的对象回调未触发

jquery deferred object callback not firing

我有以下代码

function get_hash(){
    id = $('#file_id').val()
    deferred =  $.ajax({ url: "/rest/hash_upload/", type: "GET", data: {file_id: id} })
    $.when(deferred).then(function(data){
        alert('executing')
        $('#input_md5_checksum').val(data)
    })
}

ajax 被调用并且我的后端 returns 哈希如预期的那样。但是,延迟回调方法不会触发。谁能看出我做错了什么?

谢谢。

为什么将查询设置为变量然后使用 when(),为什么不直接使用常规 ajax 调用?

        $.ajax({ 
            url: "/rest/hash_upload/", 
            type: "GET", 
            data: {file_id: id} 
        }).done(function(data){
            alert('executing');
            $('#input_md5_checksum').val(data);
        }).fail(function(xhr, status, error){
            return ("Ajax failed: " + xhr.responseText);
        });