Ajax 成功函数无法正常工作


Ajax Success Function Not Working Properly

好的,所以我的问题是我的Ajax成功函数无法正常工作,但在另一个网页上正常工作。烦人吧?当然,它们具有具有不同变量的相同代码(复制粘贴和编辑)。

工作规范:

      $.ajax({
       type: 'POST',
       url: 'login.php',
        data: {
                uname: username,
                pass: password
              },
       success: function(html){    
      alert(html);
        if(html=='true')    {
         $("#add_err").html("right username or password");
         window.location="../home.php";
        }
        else    {
        $("#add_err").css('display', 'inline', 'important');
         $("#add_err").html("<img src='images/alert.png' />Wrong username or password"+username+password);
        }
       },
       beforeSend:function()
       {
        $("#add_err").css('display', 'inline', 'important');
        $("#add_err").html("<img src='images/ajax-loader.gif' /> Loading...")
       }
      });

登录.php只会根据查询回显单词"true"或"false"。

这是不工作代码:

 $.ajax({
       type: 'POST',
       url: 'loginphp.php',
        data: {
                username1: username,
                password1: password
              },
       success: function(html){    
      alert(html);
        if(html=='true')
        {
            $("#errorlogin").html("right username or password");
            window.location="../php/home.php";
        }
        else 
        {
            $("#errorlogin").css('display', 'inline', 'important');
            $("#errorlogin").html("<img src='images/alert.png' />Wrong username or password"+username+password);
        }           
        },

       beforeSend:function()
       {
        $("#errorlogin").css('display', 'inline', 'important');
        $("#errorlogin").html("<img src='images/ajax-loader.gif' /> Loading...")
       }
      });

Loginphp.php 只会根据查询回显单词"true"或"false"。

如您所见,它们在技术上是相同的,但代码不起作用,即使登录PHP.php回显为TRUE,成功函数也将直接转到ELSE。

我知道它真的回响了 TRUE,因为我使用了"alert(html)"并且它确实显示了 TRUE。

但是在工作代码中,"if(html=='true')"被触发。我不知道发生了什么..

你应该取消引用为true:

if(html==true) //or just, if(html)

否则,它将查找字符串"true",这就是它转到 else 部分的原因。

您可以使用if(html){},它将针对除 false 之外的任何 html 值运行。

最后尝试登录.php

echo json_encode(array("msg"=>"true"));

或者在成功时你可以像这样检查

if(html.msg == "true")
{}

尝试一下可能会有所帮助