jquery ajax回调出函数范围

时间:2010-04-22 15:04:48

标签: jquery ajax

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

显然,这不起作用,但它说明了我想要实现的目标。我希望checkauth返回一个根据ajax服务器脚本检查的值。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

getJson()默认情况下是一个异步方法,因此如果不做一些调整就不能依赖它。 使用.ajax()函数,将async param设置为false,然后将结果分配给范围在checkAuth()函数中的var。

这样的事情:

function ceckAuth() {
  var ret = false;
  $.ajax({
    url: '/users/checkauthjson',
    dataType: 'json',
    data: '',
    async: false,
    success: function(result) { ret = result.success; },
    error: ...
  });
  return ret;
}