JQuery AJAX обратного вызова за пределами функции - PullRequest
1 голос
/ 22 апреля 2010
function checkauth(){
       jQuery.getJSON("/users/checkauthjson", null, function(xhr){
           if(xhr.success){ return true;}else{ return false;}
            });
   }

Очевидно, что это не работает, но это иллюстрирует то, чего я хочу достичь. Я хочу, чтобы checkauth возвращал значение, которое проверяется скриптом ajax-сервера.

Как мне это сделать?

1 Ответ

1 голос
/ 22 апреля 2010

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

Примерно так:

function ceckAuth() {
  var ret = false;
  $.ajax({
    url: '/users/checkauthjson',
    dataType: 'json',
    data: '',
    async: false,
    success: function(result) { ret = result.success; },
    error: ...
  });
  return ret;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...