2013-03-22 5 views
0

Я хочу использовать запрос $ .ajax JQuery для извлечения некоторых данных JSON с сервера. Я прочитал в документации JQuery, что все их настройки являются необязательными, что не помогает мне понять, что мне нужно или не нужно. Я не уверен, что мне нужно. Вот что у меня есть:Запрос JQuery AJAX: какие настройки необходимы для извлечения данных JSON?

JS код:

function retrieve() { 
    $.ajax({ 
     url : 'some_url', 
     type : 'POST', 
     dataType: 'JSON', 
     contentType : 'application/json', 
     data : JSON.stringify({ 
      key : 'value: ' 
     }), 
     error : function(data) { 
      console.log('error'); 
     }, 
     success : function(data) { 
        // callback function? 
     } 
    }); 
} 

Я хочу, чтобы мой метод .retrieve(), чтобы быть в состоянии принять функцию, содержащую массив всех элементов на сервере, как так:

SomeObject.retrieve(function(array){ 
     // do something w/ array 
} 

Вопрос: Нужно ли опускать или добавлять какие-либо настройки? Как создать функцию обратного вызова, чтобы после загрузки сообщений я мог использовать ее данные? Любые ответы будут очень благодарны! Спасибо!

+0

Функция обратного вызова - это функция успеха. Тот, где у вас есть функция // callback? комментарий. Вы можете передать функцию вашему методу извлечения и инициализировать поле успеха этой функцией. Почему вы не проверяете свой код, а не спрашиваете, будет ли он работать? –

+0

@JB Nizet Благодарим за быстрый ответ. Как инициализировать поле успеха для создания функции обратного вызова? Создать функцию в настройке «успех»? – andy4thehuynh

ответ

2

Чтобы выполнить что-то, когда ответ AJAX был успешно получен (в следующем примере показаны полученные данные в окно предупреждения):

function retrieve() { 
    $.ajax({ 
     ..., 
     success: function(data) { 
      alert("Yes! AJAX worked. I received the following data: " + data); 
     } 
    }); 
} 

Чтобы быть в состоянии передать функцию обратного вызова пользовательского успеха в вашей метод извлечения:

function retrieve(successCallback) { 
    $.ajax({ 
     ..., 
     success: successCallback 
    }); 
} 
-1

Использование JQuery's .get() и .post() проще для понимания. Используйте .get() для получения данных с сервера, как так:

$.get('ajax/test.html', function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
}); 

Это собирается, чтобы получить информацию от test.html. Вам нужно знать URL, откуда вы получаете данные. Это может быть контроллер на вашем сервере. Тогда аргумент функции - это то, что происходит, когда оно преуспевает. здесь он заполнит элементы результата html вашими данными и предупредит вас о том, что загрузка выполнена.

Смежные вопросы