Невозможно получить возврат из функции успеха jQuery AJAX - PullRequest
0 голосов
/ 05 декабря 2010

Эй, ребята, я создаю приложение, которое требует доступа к времени сервера перед отправкой запросов AJAX, единственный способ сделать это - иметь возможность запрашивать время у сервера, использующего AJAX, поэтомув моей функции у меня есть следующий код:

$.ajax({
    type:"GET",
    url:"app/time.php", 
        success: function(html){ return html; } });

Сам по себе код в порядке, но я не могу получить доступ к возвращенному HTML, что означает, что данные для меня бесполезны.Я попытался отправить данные в другую функцию и даже вернуться к той же функции, и это просто добавляет сложности, которая, я думаю, не нужна.Я также попытался установить значение HTML для другой переменной и затем использовать, но это не работает вне функции.

Поэтому я спрашиваю, есть ли простой способ получить доступ квозвращенная переменная html из запроса AJAX, чтобы я мог установить переменные на странице, равные функции?

Ответы [ 2 ]

1 голос
/ 05 декабря 2010

Сделай так:

 function getTime() {

       $.ajax({
        type:"GET",
        url:"app/time.php", 
            success: function(html){ setTime(html); } });
    }

    function setTime(time){
    //do what ever you want with time
    }

когда вы вызываете время getTime(), вызывается ajax и вызывается функция setTime(), которая получает время через свой аргумент.

или вы можете сделать это так

function getTime () {

   $.ajax({
    type:"GET",
    url:"app/time.php", 
        success: function(time){ // do what ever with time ; } });
}

Я думаю, что так проще, но если у вас длинная функция, то предыдущая, я думаю, чище.

0 голосов
/ 05 декабря 2010

Вы не можете вернуть значение оттуда.Это асинхронная функция, которая запускается, когда запрос XHR успешно завершен.Вам нужно вызвать другой обратный вызов здесь:

 function getTime(cb) {
      .ajax({
         type:"GET",
         url:"app/time.php", 
         success: function(html){ cb(html); } 
      });
 }

 getTime(function(html) {
    // do something with html
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...