验证用户登录

时间:2016-04-28 11:44:06

标签: javascript python mysql login

按下登录按钮后,它会将整个error.html文件打印到Web控制台,而不是重定向到userhome.html,这有点出错,欢呼!一切的代码都在......

的Python:

foreach($valid_files as $res){
  $zip->addFile($res);
}   

JS:

<script type="text/javascript" language="JavaScript">
    function load() {
        var abc= document.getElementById('review_button');
        abc.disabled = false; 
        //alert("load event detected!");
    }
    window.onload = load;
</script>

1 个答案:

答案 0 :(得分:0)

输入正确的用户凭据后,会将重定向到/UserHome

您可以通过查看看起来像这样的请求日志来确认:

127.0.0.1 - - [28/Apr/2016 22:27:59] "POST /ValidateLogin HTTP/1.1" 302 -
127.0.0.1 - - [28/Apr/2016 22:27:59] "GET /UserHome HTTP/1.1" 200 -

您可以看到/ValidateLogin生成的$.ajax()的POST请求已被回复,其中302重定向到/UserHome,然后$.ajax()跟随。这会自动发生,因此您的javascript无法对重定向执行操作。

参考this answer,一种解决方案是让您的服务器发送一个JSON响应,其中包含一个“位置”URL,以便在登录成功时重定向到该位置。然后让success()处理程序使用window.location.replace(location)重定向浏览器。

如果登录失败,那么从error.html模板呈现的HTML可以在不同的JSON项中返回,success()处理程序(因为您现在应该总是得到200响应)用于设置文档内容。检查引用的答案以获取一些代码,以显示如何在客户端处理它。