代码如下:                  var tepCookie =  1;

$.post("/1/user/login", {type:4, getFlag:1}, function(data) {
if(!data) {
    alert(111);
    tepCookie =  2;
         }
});                  alert(tepCookie);这个AJAX肯定是调用成功了,因为可以弹出“111”,但是为什么tepCookie赋值总是赋不上呢???谢谢!

解决方案 »

  1.   


    $("body").ajaxStop(function(){
            alert(tepCookie);
    }); 你加入这段话就明白了 。
    当ajax函数还没执行完 就已经alert了 。
      

  2.   

    这个是因为 ajax 异步 造成的。你试试
    async: false
      

  3.   

    这是ajax异步导致的。。
    tepCookie = 2;这里还没赋值alert(tepCookie);就先执行了
      

  4.   

    setTimeout(function(){alert(tepCookie);},1000);加个延迟加载就行了~·
      

  5.   

    你给tepCookie重新赋值是在函数以内,因此若在函数里面alert(tepCookie)就能输出2,但是你是在函数之外输出,就只能输出1了。或者说,函数后面的tepCookie和函数里面的tepCookie没有什么关系。
      

  6.   

    加入缓冲函数,让你如鱼得水,要获取值是调用getTepCoo方法        var tepArr = [];
    var tepCookie = 1;
    $.post("/1/user/login", {type:4, getFlag:1}, function(data) {
    if(!data) {
    alert(111);
    tepCookie = 2;
    tepArr[0](tepCookie);
    tepArr = [];
    }
    });
    function getTepCoo(fn){
    tepArr.push(fn);
    }
    getTepCoo(function(tepCookie){
    alert(tepCookie);
    });