проблема с вызовом getJSON - PullRequest
1 голос
/ 28 мая 2010

Снова возникла основная проблема.

Мне нужно изменить функцию, которая ранее возвращала объект, написанный в коде. Сейчас я пытаюсь получить объект из json через $ .getJSON

   function getEventData() {
       var result = '';

       $.getJSON("ajax.php?cmd=getbydate&fromdate=&todate=", function(data){
           result = data; 
       });
       return result;
   }

Проблема в том, что результат не установлен в функции обратного вызова по понятным причинам.

У вас, ребята, есть решение для этого?

Edit: Хорошо, я получил ответ, который был удален. Я просто должен был изменить это abit ..

Это ответ, который работает:

function getEventData() {
    var result = '';
    url = "ajax.php?cmd=getbydate&fromdate=&todate=";
       $.ajax({
          url: url,
          async: false,
          dataType: 'json',
          success: function(data){
                   result = data;
               }
        });
    return result;
}

Ответы [ 2 ]

1 голос
/ 28 мая 2010

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

   function getEventData() {
       var result = '';

        result = $.ajax({
          url: "ajax.php?cmd=getbydate&fromdate=&todate=",
          async: false,
          dataType: "json",
          data: data,
          success: function(data){
                   return data; 
               }
        });
       return result;
   }
0 голосов
/ 28 мая 2010

Вы уверены, что сервер возвращает действительный json? Будет лучше проверить его с помощью инструмента, подобного jsonlint . Также убедитесь, что application/json используется в качестве типа содержимого для ответа.

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