Ajax没有响应

时间:2013-06-22 14:26:52

标签: php jquery ajax

我有登录页面。当我输入正确的登录数据ajax工作。但是当我输入错误的登录或密码脚本没有返回错误。我如何解决这个问题,我在哪里犯了错误的代码? Ajax脚本

function getdetails()
{
    var name = $('#user').val();
    var haslo = $('#pass').val();
    var request=$.ajax
    ({
        type: "POST",
        url: "login.php?id=0",
        data: {login:name, pass:haslo}
    });
    request.fail(function() { 
    alert("test");
    });
    request.done(function() {
    $('#logowanie').load('index.php #logowanie');
    });

};

表格代码

function logowanie()
{
    if(isset($_SESSION["login"]) && $_SESSION["login"]!==0)
    {
        echo '<div id="logowanie"> Witaj '.$_SESSION['nick'].' na forum';
        echo '<br/><a href="login.php?off=1">Wyloguj</a><br/>';
        if($_SESSION['power']>0)
            {echo '<a href="panel.php">Panel Admina</a>';}      
        echo '</div>';
    }
    else
    {
        $_SESSION["login"]=0;
        $_SESSION['power']=0;
        ?>
        <div id="logowanie">
        <font color="red"><B> Login</B></font><input type="text" name="user" size="8" id="user"><br/>
        <B><font color="red">Hasło</font></B><input type="password" name="pass" size="8" id="pass"><br/>
        <input type="submit" value="Zaloguj" name="przycisk" onClick ="getdetails()">Jeżeli nie posiadasz jeszcze konta <a href="login.php?id=1">zarejestruj się </a></div>'<?php
    }
}

表格检查

function werfikuj(){
$login=$_POST['login'];
$haslo=$_POST['pass'];
$zapytanie= 'Select * from users where login="'.$login.'" and haslo="'.md5($haslo).'"';
$result = $this->db->query($zapytanie);
if($result->num_rows==1) {  echo "Zalogowano poprawnie";$row = $result->fetch_assoc(); $_SESSION['login']=$row['id']; $_SESSION['nick']=$row['login']; $_SESSION['power']=$row['power'];}
else { die(json_encode('zly login lub haslo'));}


}

请求帮助。

1 个答案:

答案 0 :(得分:-1)

Ajax不知道你想要显示错误,对于ajax调用,你的“Zalogowano poprawnie”消息和编码的'zly login lub haslo'消息对我来说毫无意义(我不知道你的语言)。如果你想告诉ajax这是一个错误,你需要使用不同的http响应代码进行响应。只有在出现HTTP错误响应时才会调用'failed'方法。

如果您使用的是PHP5,

echo json_encode('zly login lub haslo');
http_response_code(404);
exit();

顺便说一下,我不知道你使用json_encode的意图。这可能不会最终解决您的问题。但我相信它解决了为什么你没有得到'错误'

或者,您可以随时返回“确定”或“失败”消息。 Ajax将始终调用'done'方法。在“完成”方法中,您根据消息(“确定”或“失败”)

触发不同的操作