【问题标题】:if statement not evaluating correctlyif 语句未正确评估
【发布时间】:2012-08-01 19:56:43
【问题描述】:

所以我正在拨打$.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。我很难过有人能看到我看不到的东西吗?

【问题讨论】:

  • 您使用===而不是==有什么特殊原因吗?
  • 你试过console.log(data.status) 吗?

标签: php javascript jquery ajax if-statement


【解决方案1】:

在第一个 ajax 请求中,datatype 应该是 dataType,所以 data 只是一个字符串,data.status 是未定义的。

【讨论】:

  • 就是这样。该死的错别字。我当时一定是累了才意识到这一点。非常感谢你发现我的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多