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