function ajaxData(url,username){
$.ajax({
   type: "POST",
   url: url,
   data: "username=" + username,
   beforeSend: function(){ },
   success: function(msg){
   alert(msg); //这里有值
   return msg;
}});
}function testData(){
   var test = ajaxData(url,username);
   alert(test); //这里怎么获取不到ajaxData返回值啊?
}

解决方案 »

  1.   

    url 里面填的是action在xml中配置的name属性,在jquery里面取值的方法是innerHTML的方式
      

  2.   


    function ajaxData(url,username){
    $.ajax({
       type: "POST",
       url: url,
       data: "username=" + username,
       beforeSend: function(){ },    
       success: function(msg){
       testData(msg);
    }});
    }function testData(obj){
       var test = obj;
       alert(test); //这样获取?
    }
      

  3.   

    因为js不等你返回结果就已经执行了
       alert(test); //这里怎么获取不到ajaxData返回值啊?
      

  4.   

    function ajaxData(url,username){
    $.ajax({
       type: "POST",
       url: url,
       data: "username=" + username,
       beforeSend: function(){ },    
       success: function(msg){
       alert(msg); //这里有值
       return msg;//这而return是success方法的返回值,不是ajaxData的
    }});
    }function testData(){
       var test = ajaxData(url,username);//如上,ajaxData方法没有返回值
       alert(test); //理所当然的没有值
    }要获取后台的返回信息,只能在回调函数,你这种打包方式不可能成功
      

  5.   

    两点建议
     1  改成非异步
     2 在 success:function(){  这里调用你的方法 }
      

  6.   

    function ajaxData(url,username){
    $.ajax({
       type: "POST",
       url: url,
       async:false,    //看这边,加个这个就变为同步,就可以了
       data: "username=" + username,
       beforeSend: function(){ },    
       success: function(msg){
       alert(msg); //这里有值
       return msg;
    }});
    }function testData(){
       var test = ajaxData(url,username);
       alert(test); //这里怎么获取不到ajaxData返回值啊?
    }
      

  7.   

    1 使用异步通讯
    2 使用全局变量在success里面赋值然后处理
      

  8.   

    不过是函数没有返回值罢了,跟同步异步有毛关系,还这种写法,换成同步是一样结果
    如果能像你这样写,jquery直接给你打包好不就行了,还要你包装?
    你要写也只能和jquery一样,把请求参数作为参数传递到你的函数,同时还传一个函数类型的参数作为处理函数(回调函数),在ajax回调函数中调用这个函数,把后台的返回结果传递到这个函数呃,这其实也就和jquery提供的函数一样了,因为jquery已经尽可能做到最好了你没有理解这些函数怎么回事,如果你理解,你就该知道,框架给你提供的函数已经打包得尽可能的完美了...
    而且也能知道为什么jquery要写成它那样而不是你那样,以为你那个是根本不可能实现的...你要知道服务器与客户端通信是一个过程,需要时间的,要实现你那种直接调用函数,通过返回值获取到后台的返回值,唯一的办法就是阻塞住主线程,直到通信完成,也就是说在通信过程中,页面就死那儿了。但这样的话,你还用ajax干什么?
    ajax技术的目的就是要实现异步通信