Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js+;express+;passport(后端)/jQuery(前端)_Javascript_Jquery_Node.js_Express_Passport.js - Fatal编程技术网

Javascript Node.js+;express+;passport(后端)/jQuery(前端)

Javascript Node.js+;express+;passport(后端)/jQuery(前端),javascript,jquery,node.js,express,passport.js,Javascript,Jquery,Node.js,Express,Passport.js,我正在使用html/css+javascript/jQuery编写一个网站 目前,我正在做一个注册+登录/注销服务,但我被卡住了 这是我的jQuery登录代码(前端): 这是我的node.js+express+passport代码(后端): 问题是当我使用邮递员时,一切都很好。 但是当我在我的网站上点击登录按钮时,什么也没有发生,也没有错误 有人能帮我吗?根据标记,jquery中使用的ID正确吗?您在浏览器的“网络”选项卡中看到了什么?是否至少发送了AJAX请求?是的,两个AJAX请求都已发送,

我正在使用html/css+javascript/jQuery编写一个网站

目前,我正在做一个注册+登录/注销服务,但我被卡住了

这是我的jQuery登录代码(前端):

这是我的node.js+express+passport代码(后端):

问题是当我使用邮递员时,一切都很好。 但是当我在我的网站上点击登录按钮时,什么也没有发生,也没有错误


有人能帮我吗?

根据标记,jquery中使用的ID正确吗?您在浏览器的“网络”选项卡中看到了什么?是否至少发送了AJAX请求?是的,两个AJAX请求都已发送,我可以通过morgan看到。对于postman,当我执行带有标题“Authorization=JWT token”的GET请求并在URL末尾添加“?role=Owner”时,主体包含account.html页面。。。可能是服务器重定向问题
// Login form
$(function() {
  $('#login_btn').click(function() {
    $.ajax({
      url : '/login',
      type : 'POST',
      dataType : 'json',
      data : {
        username : $('#login_username').val(),
        password : $('#login_password').val()
      },
      cache : false,
      timeout : 5000,

      success: function(data) {
        if (data.reponse == 'success') {
          createCookie('token', data.token, 7);
          $.ajax({
            url :"/account",
            type:'GET',
            headers : { "Authorization" : readCookie('token') },
            dataType: 'json',
            data: {
              role: data.role
            },

            success: function(data, status) {
              console.log("Status " + status);
              console.log(data);
            }
          });
        }
        else {
          if (data.msg == 'user not found') {
            display_login_alert(false, 'user_not_found');
          }
          else if (data.msg == 'wrong password') {
            display_login_alert(false, 'wrong_password');
          }
          else {
            display_login_alert(false, 'unknown');
          }
        }
      },

      error: function() {
        display_login_alert(false, 'unknown');
      }
    });
  });
});
app.post('/login', (req, res) => {
  User.findOne({
    username: req.body.username
  }, (err, user) => {
    if (err)
    throw err;
    if (!user) {
  res.send({reponse: 'error', msg: 'user not found'});
    }
    else {
      // check if password matches
      user.comparePassword(req.body.password, (err, isMatch) => {
        if (isMatch && !err) {
          // if user is found and password is right create a token
          var token = jwt.sign(user, config.secret, { expiresIn: 21600 });
          // return the information including token as JSON
          res.json({
            reponse: 'success',
            token: 'JWT ' + token,
            profile: user.profile,
            role: user.role
          });
        }
        else {
          res.send({reponse: 'error', msg: 'wrong password'});
        }
      });
    }
  });
});

app.get('/account', passport.authenticate('jwt', { session: false }), (req, res) => {
  var token = getToken(req.headers);
  if (token) {
    jwt.verify(token, config.secret, function(err, decoded){
      if (err) {
        return res.redirect("/");
      }
      else if (req.user.role != "Owner") {
        return res.redirect("/");
      }
      else {
        req.decoded = decoded;
        res.sendFile('/.../account.html'); // /.../ : file path is good
      }
    });
  }
});