为了账号安全,请及时绑定邮箱和手机立即绑定

node.js下ajax登录请求点击按钮没有发出post请求,但后台却接收到数据

node.js下ajax登录请求点击按钮没有发出post请求,但后台却接收到数据

村中长相较好的男子 2018-01-04 18:34:02
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请求了,而且账号验证的代码也能正常运行
查看完整描述

1 回答

?
村中长相较好的男子

TA贡献7条经验 获得超4个赞

找到问题了,是因为我的登录页还有一个form 标签,点击登录按钮会先走那个form标签的action路径,所以才提交不到

查看完整回答
反对 回复 2018-01-04
  • 1 回答
  • 1 关注
  • 1377 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信