一个异步请求中回调再发起一个异步请求,第二个异步请求的回调函数不能执行,哪位高人解释一下
见代码,使用的jquery的ajax请求function test(){
 $.get("/a",function(data){
   alert("a");//可以触发
   $.get("/b",function(data){
     alert("b");//不能触发
   });
 });
}

解决方案 »

  1.   

    1、检查/b是否可以访问,例如有没有出现404或500以上的错误
    2、如果排除1的可能,将库版本修改到jquery-1.6.2试试
      

  2.   

    已经确认过请求都能正常返回json数据,换到jquery-1.6.2也不行
      

  3.   


    能返回json,那我不明白你的错误在什么地方》
      

  4.   

    能返回json数据,那错误还真不知道在哪。换一种方式试下:用ff的debug功能看一下
    function test(){
     $.get("/a",function(data){
       alert("a");//可以触发
       alert(data);
       again(data);
     });
    }function again(data){
     $.get("/b",function(data){
         alert("b");//不能触发
       });
    }
      

  5.   

    已经跟踪过程序不能运行到alert("b");没有任何错误提示。我不用jquery的ajax请求可以正常触发,代码如下:function test() {
    newajax("/a", function (data) {
    alert("a"); //可以触发
    newajax("/b", function (data) {
    alert("b"); //可以触发
    });
    });
    }
    function newajax(url, callback) {
    var xmlhttp;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    callback(xmlhttp.responseText);
    }
    };
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
    }不知道为什么会这样,看样子得看看jquery的源码
      

  6.   

    试试?
    function test() {
        newajax("/a", function (data) {
                alert("a"); //可以触发
                setTimeout(function(){
    newajax("/b", function (data) {
                        alert("b"); //可以触发
                    });
    },0)
            });
    }