AJAX是异步, 数据没有返回前你去alert数据当然没有了,
前面加了alert后, 正好给数据返回拖延了一点时间,所以可以了

解决方案 »

  1.   

    把alert(url)放到
    onSussecu
    这个涵数里就行了
      

  2.   


    可是我在onSussecu内部己检测到返回值了,有点要重新说明的是,除了[alert(strRolesName);//返回了bb] 这句不删除外
    其它的alert删除都可以正常执行,结果也是我预期的值
      

  3.   

    这个问题我前几天遇到过,最后还是移到函数onSussecu里面去执行以后的语句的
      

  4.   

    onSussecu是在后台返回数据后才会触发的楼主需要了解下AJAX的运行机制.....
      

  5.   

    不好意思,是我太意,把过程内嵌了,搞错了,另提个问题.
    我要在onSussecu过程内把返回的值,给这个过程外的一个变量,应该怎样操作?
    var strRolesName=null;
    ExitRolesNameService.AbuEncrypt(tbUserName.value,onSussecu);
    var url = "ajax/CheckRolesNameExit.aspx?RolesName=" +strRolesName;
    alert(strRolesName);还是null我要怎样才能才这返回正确址呢?
    function onSussecu(reluest)
    {
      strRolesName=reluest;
      alert(strRolesName) //是正确址
      }
      

  6.   

    可以,不过在用过程外的这个赋好值的变更,要等这个过程执行后....就是你在这个过程外面跟本不知道什么时候用这个变更合适~ 因为数据何时返回未知所以你可以定义一个函数,然后在你ajax返回数据后调用的这个过程函数里执行,别的方法没了...function op(){
      alert(strRolesName);
    }function onSussecu(reluest) 

      strRolesName=reluest; 
      op();