2015-01-21 98 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); 

那麼它可能工作。