jQuery, передача данных об успехе из AJAX в другую функцию? - PullRequest
2 голосов
/ 11 августа 2010

Я пытаюсь получить данные об успехе из вызова jjery Ajax, чтобы я мог использовать его в другом месте, но по какой-то причине он доступен только при фактическом вызове успеха, поэтому нижеприведенное немедленное действие работает, но другой - нет .. любой советпризнателен

      success: function(data) {
        alert (data)
      }

это не работает, когда я пытаюсь передать "данные" в другую функцию

    $.ajax({
      type: 'POST',
      url: 'http://localhost/site1/utilities/ajax_component_call_handler',
      data: {
            component_function: component_function,
            param_array: param_array
            },
            dataType: "json",
      success: function(data) {
        receiver (data)
      }
    });

}

мой ajax-успех вызывает это:

function receiver (data) {

    ajax_return = data
alert (ajax_return)
}

Ответы [ 2 ]

3 голосов
/ 11 августа 2010

Вы пробовали:

$.ajax({
    type: 'POST',
    url: 'http://localhost/site1/utilities/ajax_component_call_handler',
    data: {
        component_function: component_function,
        param_array: param_array
    },
    dataType: 'json',
    success: receiver
});

Или просто используйте другое имя переменной, отличное от data, поскольку оно уже используется.

3 голосов
/ 11 августа 2010

Не используйте data в качестве имени переменной. У объектов jQuery уже есть объект с именем data, который содержит произвольные данные. Если вы называете свою переменную dat, вы должны получить лучшие результаты.

См. http://api.jquery.com/jQuery.data/

Более короткая реализация могла бы просто сказать success: receiver без параметров и написать подпись получателя как

function receiver(data, textStatus, XMLHttpRequest) {
  /* ... */
}

Затем данные передаются обратным вызовом jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...