вопрос о вызове jquery ajax

#jquery #ajax #call

#jquery #ajax #вызов

Вопрос:

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

 $.ajax({
 url: 'mypgm.pgm', 
 введите:'POST', 
 Тип данных: 'json', 
 данные: 'действие=добавить'   
 'amp;techno='   техно  
 'amp;activity='   активность, 
 успех: ajax_callback (сообщение об ошибке), 
 ошибка: функция (xhr, AjaxOptions, thrownError){
 предупреждение (xhr.status);
 предупреждение (thrownError);
 } 
 });
}

 функция ajax_callback (сообщение) { 

 предупреждение (сообщение);
 }
 

Ответ

{"ответ": {
 "успех": "0", 
 "сообщение": "Добавлено действие".
 }
}

Комментарии:

1. Похоже, что mypgm.php отвечает, согласно вашему ответу здесь — в чем именно проблема?

Ответ №1:

Обработчик успешного обратного вызова для $.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)
}
  

Комментарии:

1. Похоже ли это на это? успех: успех (данные, текстовый статус, jqXHR),

2. Я не уверен, о чем вы спрашиваете. Формат обработчика обратного вызова для успешного выполнения точно такой, как вы вставили, и точно такой, как я изложил в своем коде. Пожалуйста, попробуйте и дайте мне знать, если у вас возникнут проблемы.

3. данные @bob — это просто параметр функции ajax_callback. Вы могли бы называть это как угодно в соответствии с правилами имен переменных javascript. Это может быть корова, собака, лимон, что угодно. Значение ему придает то, что код jQuery $.ajax после успешного завершения AJAX-кода передает данные, текстовый статус и объект ajax определенному вами обратному вызову.

4. @bob В свою очередь, data присваивается data, textStatus присваивается статус text, а jqXHR присваивается значение объекта ajax.

5. Привет, onteria — спасибо за ваших пациентов. Я пересмотрел свой первоначальный пример выше. однако я все еще получаю «сообщение об ошибке не определено»

Ответ №2:

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

 $.ajax({
    url: 'mypgm.php',
    type: 'POST',
    dataType: 'json',
    data: 'action=add'   'amp;techno='   techno   'amp;activity='   activity,
    success: function(data) {
        alert(data)
    }
});
  

Комментарии:

1. Спасибо. Я хотел бы отключить функцию успеха.

Ответ №3:

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

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

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

Комментарии:

1. не уверен, что мы придерживаемся json. .ajax кажется более гибким.