JQuery AJAX вызов вопрос - PullRequest
       1

JQuery AJAX вызов вопрос

1 голос
/ 19 мая 2011

В выражении jQuery ajax я хочу получить полезную нагрузку от сервера и обработать ее в другой функции. У меня просто проблемы с синтаксисом функции.

    $.ajax({
    url: 'mypgm.pgm',
    type:'POST', 
    dataType: 'json',
    data:   'action=add' +
             '&techno=' + techno +
             '&activity=' + activity, 
    success: ajax_callback(msg),
    error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);
        }       
    });
}

    function ajax_callback(msg) { 

        alert(msg);
    }
    

Ответ

{"response": {
    "success": "0",
    "message": "The Activity has been added."
    }
}

Ответы [ 3 ]

3 голосов
/ 19 мая 2011

Обработчик успешного обратного вызова для $.ajax() может принимать следующие значения:

success(data, textStatus, jqXHR)

Источник: http://api.jquery.com/jQuery.ajax/

Итак, ваш обратный вызов функции будет выглядеть примерно так:

function ajax_callback(data, textStatus, jqXHR)     
{
  alert(data.response)
}

Обратите внимание, как я создал именованную функцию таким образом, вместо того, чтобы назначать ее переменной. Если вы заботитесь только о данных, вы можете просто оставить последние 2 параметра выключенными:

function ajax_callback(data)     
{
  alert(data.response)
}
0 голосов
/ 19 мая 2011

Ваш обратный вызов должен быть определен до вызова ajax и изменить сигнатуру функции на:

var ajax_callback = function(data, textStatus, xhr) {
    // parse the data.responseText to json
}

Вы могли бы просто использовать $.getJSON()

0 голосов
/ 19 мая 2011

Попробуйте это:

$.ajax({
    url: 'mypgm.php',
    type: 'POST',
    dataType: 'json',
    data: 'action=add' + '&techno=' + techno + '&activity=' + activity,
    success: function(data) {
        alert(data)
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...