2015-01-21 85 views
2

在成功函数中,我想调用一个函数。问题是ajax不会触发,所以数据永远不会触发并显示。这是我在成功函数中调用了一个javascript函数的ajax调用。在javascript函数中没有调用Ajax

$.ajax({ 
    type: "POST", 
    url: "./api/login.php", 
    data: dataString, 
    cache: false, 
    success: function(data){ 
     if(data){ 
      //FUNCTION CALL WHEN USER LOGGING IN 
      retrieveUserBlogData(); 

      window.location = "api/home.php"; 
     }else{ 
      $('.alert').show(); 

     } 
    } 
}); 

function retrieveUserBlogData(){ 
    $.ajax({ 
     type: "GET", 
     url: 'retrievePostData.php',   
     data: "", 
     dataType: 'json',  
     success: handleData 
    }); 
} 

function handleData(data) { 
    alert(data); 

    var blog_file = data[3];    
    $('#imageDiv') 
    .append('<img id="blog_img" src="upload/' +  blog_file + '"><br>'); 
} 

我无法弄清楚为什么没有触发retrieveUserBlogData()函数中的ajax。 任何帮助,将不胜感激谢谢。

+2

我认为问题是'window.location =“api/home.php”'。因为您在第二次Ajax调用的成功事件之前正在更改页面。 – 2015-01-21 11:32:27

回答

4

即使AJAX成功,你是第一个AJAX请求后,将浏览器重定向到不同的页面:

window.location = "api/home.php"; 

所以我建议移除。

0

尝试像这样

$.ajax({ 
type: "POST", 
url: "./api/login.php", 
data: dataString, 
cache: false, 
success: function(data){ 
    if(data){ 
     //FUNCTION CALL WHEN USER LOGGING IN 
     retrieveUserBlogData();    
    }else{ 
     $('.alert').show(); 

    } 
} 
}); 

function retrieveUserBlogData(){ 
$.ajax({ 
    type: "GET", 
    url: 'retrievePostData.php',   
    data: "", 
    dataType: 'json',  
    success: function(data){ 
     alert(data); 

     var blog_file = data[3];    
     $('#imageDiv') 
     .append('<img id="blog_img" src="upload/' +  blog_file + '"><br>'); 

     window.location = "api/home.php"; 
    } 
}); 
} 
+0

nope that does not work – Skillie 2015-01-21 11:49:36

+0

尝试将retrieveUserBlogData()函数中的整个ajax调用从第一个ajax调用移动到if(data)条件,并且在第二个调用的成功中使用console.log()来查看响应obj如果有的话 – Sabbin 2015-01-21 11:51:27

1

尝试下面的代码重新定向到另一个窗口

window.location.assign(URL); 

那么它可能工作。