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

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请求了,而且账号验证的代码也能正常运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些指导。首先,您需要安装Node.js和Vue.js。然后,您可以按照以下步骤实现登录的前端页面接口: 1. 创建一个Vue.js项目,在命令行中使用以下命令: ``` vue create login-app ``` 2. 在项目中创建一个登录页面组件,可以使用Vue.js提供的模板语法和组件生命周期钩子。例如,您的组件可以包括一个表单,用户可以在表单中输入用户名和密码。 3. 在Node.js中创建一个登录接口,该接口接收来自前端的用户名和密码,并与后端数据库进行验证。如果验证成功,后端将返回一个JSON Web Token(JWT)给前端。 4. 在Vue.js中使用ajax发送请求来调用登录接口。您可以使用Vue.js提供的axios库来发送请求。例如,您可以在登录页面组件中使用以下代码: ``` import axios from 'axios'; export default { data() { return { username: '', password: '' } }, methods: { login() { axios.post('/api/login', { username: this.username, password: this.password }) .then(response => { // 将JWT保存到本地存储中 localStorage.setItem('token', response.data.token); }) .catch(error => { console.error(error); }); } } } ``` 在上面的代码中,`axios.post()`方法将发送POST请求到`/api/login`接口,并将用户名和密码作为请求体发送。如果请求成功,`response.data.token`将包含从后端接收到的JWT,您可以将其保存到本地存储中以备将来使用。 请注意,这只是一个简单的示例,用于说明如何使用Vue.js和Node.js创建登录页面接口。在实际项目中,您需要进行更多的验证和安全性措施,以确保您的应用程序是安全的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值