ajax登录请求第一次点击按钮没有发出post请求,但后台却能接收到数据,且登录验证流程全都没能生效,
第二次提交的时候才能正常post,登录验证流程流程也生效
登录页面的ajax代码
$("#login_botton").click(function(){
//注册按钮的事件,用ajax提交表单
$.post("/dologin",{
"username" : $("#username").val(),
"password" : $("#password").val()
},function(result){
if(result == "1"){
//登录成功
alert("登陆成功!将自动跳转到首页");
window.location = "/";
}else if(result == "-1"){
$("#regist-msg").html("用户名不存在");
$("#regist-msg").addClass("alert-danger")
}else if(result == "-2"){
$("#regist-msg").html("密码错误!");
$("#regist-msg").addClass("alert-danger")
}
});
});
这是登录验证的代码var formidable = require("formidable");var es6 = require("es6");var path = require("path");var fs = require("fs");var db = require("./db.js");var md5 = require("./md5");
exports.doLogin = function (req, res, next) { //得到用户表单
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) { //得到表单之后做的事情
var username = fields.username; var password = fields.password; console.log(username+password); var jiamihou = md5(password); //查询数据库,看看有没有个这个人
db.find("users", {"username": username}, function (err, result) { if (err) {
res.send("-5"); return;
} //没有这个人
if (result.length == 0) {
res.send("-1"); //用户名不存在
return;
} //有的话,进一步看看这个人的密码是否匹配
if (jiamihou == result[0].password) {
req.session.login = "1";
req.session.username = username;
res.send("1"); //登陆成功
return;
} else {
res.send("-2"); //密码错误
return;
}
});
});
};
这是入口文件var express = require('express');var app = express();var ejs = require('ejs');var route = require('./route/route');var myDo = require('./model/do');var session = require('express-session');//使用sessionapp.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true}));
app.set('view engine','ejs');//静态文件app.use('/static',express.static('public'));
app.use("/avatar",express.static("./avatar"));
app.get('/login',route.showLogin);
app.post('/dologin',myDo.doLogin);
当我第一次点击登录的时候,从控制台看到没有post请求,但后台却打印出了账号和密码,
同一个页面不刷新,我第二次点登录的时候,控制台就有post请求了,而且账号验证的代码也能正常运行