ajax登录请求第一次点击按钮没有发出post请求,但后台却能接收到数据,且登录验证流程全都没能生效,
第二次提交的时候才能正常post,登录验证流程流程也生效
登录页面的ajax代码
<script> $("#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") } }); }); </script>
这是登录验证的代码
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请求了,而且账号验证的代码也能正常运行
村中长相较好的男子
相关分类