Почему не вызывается мой обратный вызов jQuery.get ()? - PullRequest
10 голосов
/ 30 декабря 2011

Я ожидаю, что следующий код будет отображать '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) { ... } никогда не вызывается, и на странице не отображается «hi mom». Однако, если я урежу код до:

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

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

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

1 Ответ

11 голосов
/ 30 декабря 2011

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

 render :json => { :message => "Hi mom" }, :status => :ok
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...