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 回答
- 1 關注
- 1428 瀏覽
添加回答
舉報
0/150
提交
取消