下面是我的AJAX方法,在调用$.ajax方法时 把回调函数返回值付给opusid,但是在$.ajax()方法外是取不到opusid的值,在$.ajax里是有值的,这是为什么 
function ajax(){
var opusid=0;
$.ajax({
        type:"post",              
        url:"../jsp/getOpus",
        success:  function(data){
         if(data!=0){
            opusid = data;
         }
          }
        }); 
window.location.href="../jsp/opusInfo?op=get&id="+opusid;
}

解决方案 »

  1.   

    var opusid=0;把这个声明为全局的,你那样只是局部的
      

  2.   

    var opusid=0;放在function外面,声明为成员变量,跟java相似的
      

  3.   

    function ajax(){ 
    var opusid=0;
    $.ajax({
      type:"post",   
      url:"../jsp/getOpus",
      success: function(data){
      if(data!=0){
      opusid = data;
        window.location.href="../jsp/opusInfo?op=get&id="+opusid;
      }
      }
      });  
    //window.location.href="../jsp/opusInfo?op=get&id="+opusid;这里是异步的,所以不一定会取到值,把这件移到success的处理函数中即可。}你要慢慢培养Ajax异步的概念。