1
function checkauth(){
       jQuery.getJSON("/users/checkauthjson", null, function(xhr){
           if(xhr.success){ return true;}else{ return false;}
            });
   }

Obviously, that does not work, but it illustrates what i want to achieve. I want checkauth to return a value which is checked against an ajax server script.

How do i do this?

1 Answer 1

1

getJson() is an asynchronous method by default, so you cannot rely on it without doing some adjustments. Use .ajax() function, setting async param to false, and then assign result to a var whose scope is in the checkAuth() function.

Something like this:

function ceckAuth() {
  var ret = false;
  $.ajax({
    url: '/users/checkauthjson',
    dataType: 'json',
    data: '',
    async: false,
    success: function(result) { ret = result.success; },
    error: ...
  });
  return ret;
}
1
  • Note that you page will be unresponsive whilst the AJAX request is in progress, because it's now synchronous.
    – Matt
    Commented Apr 22, 2010 at 15:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.