javascript - 使用 Javascript 进行 HTML 登录?

标签 javascript html node.js forms authentication

我正在尝试创建一个具有“登录”能力的服务器(用户名和密码必须匹配)。我正在尝试在“低级”中做到这一点,可以这么说,没有扩展或任何东西。现在,当页面被拉出时,它们都可以访问并且表单会显示,但是当单击按钮时什么也不会发生。没有任何内容写入控制台,并且永远不会调用 check()。

我尝试了很多方法 - 更改功能、按钮类型、从表单获取数据的方式,但似乎都不起作用。我真的很感激朝着正确的方向插入(而且,总而言之,如果有人也能谈谈如何在用户登录时设置 cookie,我也会很感激,但这对我来说是非常额外的)手头的问题)。

var http = require("http");
var url = require("url");

var server = http.createServer(function (req, response){
    var page = url.parse(req.url).pathname;

    response.writeHead(200, {'Content-Type':'text/html'});
    if (page == '/'){
        //home page
    }

    else if (page == '/page1'){
        //page one
    }

else if (page == '/auth'){
        response.write('<html>'+
        '<h1><center>Sign up for dumblr home of the dumblr</center></h1>'+
        '<form method="POST" name="auth" >'+
        'Username: <input type="text" name="user" required /> <br />'+
        'Password: <input type="password" name="pwd" required/> <br />  '+
        '<input type="button" value="Submit" onclick="check(this.form)"/> '+
        '</form>');

        function check(form){
            console.log("1");

            if(form.user.value == form.pwd.value){
                //response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']);
                console.log("Cookie is set");
                return true;
            }
            else{
                response.write("<h1>Sorry, those are not correct. Try again.</h1>")
                console.log("Didn't work")
                return false;
            }
    }


}
    response.end();

}).listen(3000);

console.log('Server running at http://127.0.0.1:3000');

最佳答案

您正在服务器端和客户端混合 JavaScript 函数。

服务器端的代码会在您打开时创建一个非常简单的页面

<强> http://localhost:3000/auth

但是您的浏览器上的此页面没有检查(表单)功能。这个功能你的页面上不存在,只存在于服务器端。因此,当您单击按钮时,浏览器无法调用检查,仅此而已。您应该从更简单的方法开始。只需尝试仅在客户端使用 javascript 编写一个简单的页面,并尝试在那里解决您的问题。

关于javascript - 使用 Javascript 进行 HTML 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40415301/

相关文章:

php - 只允许在数据库中输入某些字符

node.js - Node 尝试查找很早才在:app:bundleReleaseJsAndAssets阶段删除的包

node.js - 找不到模块 'socket.io/node_modules/redis'

node.js - 为什么 Visual Studio 需要 Nodejs 项目的解决方案文件?

javascript - 使用 Javascript 隐藏相对 div

javascript - Outlook插件开发

javascript - Typescript - 没有参数类型为 'string' 的索引签名

javascript - 在 css 类中禁用控件的不同方法

javascript - 表格单元格中具有 100% 高度的图像居中链接(导航按钮)

javascript - 使用不同的链接创建模态