Select2 initSelection

Tengo un problema para configurar el método initSelection con una llamada ajax, devuelvo "indefinido". Lo verifiqué y la llamada ajax devuelve el resultado correcto. No entiendo el método de cómo configurar el método de devolución de llamada para asegurarme de que selecciona 'el valor preestablecido.

 function mediaFormatResult(media) {
        var markup = "<div class='media-title'>" + media.name + ", " + media.prov + " (" + media.region + ")</div>";

        return markup;
    }

    function mediaFormatSelection(media) {
        return media.name +", " + media.prov + " (" + media.region + ")";
    }
    $field = $('#comune');
    $($field).select2({
        placeholder: "Seleziona il tuo comune",
        minimumInputLength: 3,
        initSelection: function(element, callback) {

        return $.ajax({
            type: "POST",
            url: "myurl",
            dataType: 'json',
            data: { id: (element.val())},
            success: function(data){
                //results: data.results;
            }
        }).done(function(data) { 
            //console.log(data);
            callback(data);
        });

        },
        ajax: { 
            quietMillis: 100,
            url: "myurl",
            dataType: 'json',
            type: 'POST',
            data: function (term, page) {
                return {
                    q: term,
                    page_limit: 10
                };
            },
            results: function (data, page) {
                return {results: data.results};
            }
        },
        formatResult: mediaFormatResult, 
        formatSelection: mediaFormatSelection, 
        formatNoMatches: function () { return "Nessun risultato trovato!";},
        formatSearching: function () { return "Ricerco.."; },
        formatInputTooShort: function(input, min) {return "Inserire "+ (min - input.length) + " caratteri.";},
        dropdownCssClass: "bigdrop",
    });

¿Hay algo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta