Почему мой вызов jQuery.get() не вызван?

Я ожидаю, что следующий код отобразит "hi mom" между <div id='job-status'></div> на исходной странице, но это не так:

$(function () {
    function show_status() {
         $.get("<%= status_jobs_path -%>",
               function(data) {
                   $('#job-status').html('hi mom');
               }, 'json');
    }
    show_status();
});

Функция get() запускается: я вижу, что запрос поступает на мой сервер и ответ 200 OK, содержащий мой код JSON. Но alert() внутри тела function(data) { ... } никогда не вызывается, и не отображается "привет мама" на странице. Однако, если я разделяю код на:

$(function () {
    function show_status() {
        $('#job-status').html('hi mom');
    }
    show_status();
});

... тогда он отображает "привет мама" в <div id='job-status'></div>.

IASISO (я уверен, это что-то очевидное), но чего мне не хватает?

Ответ 1

Я предполагаю, что вы вернете недействительный ответ json. Попробуйте поместить это в действие вашего контроллера.

 render :json => { :message => "Hi mom" }, :status => :ok