2015-04-01 23 views
0

我想創建基於jquery ajax成功函數基於resp從logout.php。如果用戶沒有登錄,它將重定向到登錄頁面,但它不能按我的預期工作,當用戶登錄或不登錄時不會發生任何事件。那麼,我的ajax函數有什麼問題? index.html中jquery - 如何創建條件成功函數



logout.php

<?php 
    if(!$user->is_logged) { 
     echo 'true'; 
    }else{ 
     echo 'false'; 
    } 
?> 

jQuery函數

$(function(){ 
    $.ajax({ 
    type: 'GET', 
    url: "logout.php", 
    success: function(resp){ 
     if(resp =='true'){ 
     document.location = '../login_test.html'; 
     } 
     if(resp=='false'){ 
     alert('U are logged'); 
     }   
    } 
    }); 
}); 
+1

做得成功:function(resp){console.log(resp);並告訴我們 – Legendary 2015-04-01 14:27:40

+0

另外:你確定呼叫成功了嗎?添加一個'error:'處理程序,看看*是否被調用。 – 2015-04-01 14:28:44

+0

*那麼,什麼是錯我的AJAX功能* - 這取決於你如何* logout.php *實現 – phts 2015-04-01 14:28:57

回答

1

改變一些錯誤,並做出更好的視野:

PHP:

<?php 
    header('Content-Type: application/json'); 
    if(!$user->is_logged) { 
     echo json_encode(array('status' => 'ok')); 
    }else{ 
     echo json_encode(array('status' => 'bad')); 
    } 
?> 

的Javascript:

$(function(){ 
    $.ajax({ 
    type: 'GET', 
    url: "logout.php", 
    success: function(resp){ 
     var state = JSON.parse(resp).status 
     if(state == 'ok'){ 
     document.location.href = '/login_test.html'; 
     } 
     else{ 
     alert('U are logged'); 
     }   
    } 
    }); 
}); 

如果你沒有警覺,沒有重定向 - 你沒有.success回調和問題一個級別的條件之上。在這種情況下,向我們展示從瀏覽器的js-dev-console中的錯誤。

+0

感謝傳奇,但在將其轉換爲代碼時無法正常工作。 但它現在正在工作,我只是添加resp.trim():) – adam 2015-04-01 15:22:38

+0

很高興爲你,修剪保存了很多php-guys – Legendary 2015-04-01 15:24:22

+0

現在,我想了解更多關於json :) – adam 2015-04-02 17:28:19