2012-08-01 127 views
0

所以我正在撥打$.ajax電話並返回json數據。在所述數據中存在名爲狀態的元素。我正在測試這個:if(data.status === "success"){ ..do something..}。我知道$.ajax調用的json數據實際上是"success"(我從開發人員的工具chrome知道php腳本返回{status: success}),但是if語句中沒有任何內容正在被評估。如果我向if語句中添加else語句,那麼該代碼將得到評估。這裏是我的代碼:如果陳述沒有正確評估

$.ajax({ 
    type: "POST", 
    url: "./php/checkuser.php", 
    datatype: "json", 
    success: function(data){ 
     console.log(1); 
     if(data.status === "success"){ 
     console.log(2); 
     $.get("./mainmenu.html", function(html){ 
      $("#content").html(html); 
      console.log(3); 
     }); 
     $.ajax({ 
      type:"POST", 
      url:"./php/loaduserdata.php", 
      dataType:"json", 
      success:function(data){ 
      console.log(4); 
      if(data.status === "success"){ 
       console.log(5); 
       var lastlevel = data.lastlevel; 
       if(lastlevel === 0){ 
       console.log(6); 
       $("#continue-wrapper").removeClass("enabled").addClass("disabled"); 
       $('<img />').attr('src', "./images/menuitem_continue-disabled.png").attr('id', "continue").attr('alt', "Continue").load(function(){ 
        $("#continue-wrapper").html($(this)); 
       }); 
       } else { 
       console.log(7); 
       $("#continue-wrapper").removeClass("disabled").addClass("enabled"); 
       $('<img />').attr('src', "./images/menuitem_continue-enabled.png").attr('id', "continue").attr('alt', "Continue").load(function(){ 
        $("#continue-wrapper").html($(this)); 
       }); 
       } 
      } 
      } 
     }); 
     } else { 
     console.log(8); 
     } 
    }, 
    error: function(thrownError){ 
     console.log(thrownError); 
    } 
    }); 
在控制檯輸出

我得到18。我很難被某人看到我不能做的事情?

+0

是否有一個特別的原因,你正在使用'==='而不是'=='? – Daedalus 2012-08-01 19:59:18

+0

你有沒有試過'console.log(data.status)'? – NicoSantangelo 2012-08-01 19:59:30

回答

4

在第一個Ajax請求你有datatype應該dataType,所以data只是一個字符串和data.status是不確定的。

+0

就是這樣。該死的錯別字。我當時一定很累,才意識到這一點。非常感謝我的錯誤。 – Joe 2012-08-02 03:04:10