最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

res.redirect不重定向任何地方

IT培训 admin 6浏览 0评论

res.redirect不重定向任何地方

最喜欢的我的问题,我看到类似的人,但他们是不一样的决议。我res.redirect简单的只是什么都不做。该页面保持不变,绝对没有重定向的尝试。

我试图把在其他部位的res.redirect但后来我得到的错误。我只是希望页面登录后重定向到另一个。

app.post('/login', function (req, res) {
  var usernameCollection = mongoDBDatabase.collection('accounts');
  var username = req.body.username;
  var enteredPassword = req.body.password;

  usernameCollection.findOne({
    $or:[
          { username: username}
        ]
    }).then(function(user){
      if (user) {
        console.log('That username was found in the database');
        bcryptpare(enteredPassword, user.password.substr(1), function(err, result){
          if(result == true){
              console.log('Password matches!');
              console.log('logged in as ' + username);
              usercurrentlyloggedin = username;
              res.redirect('/username');
          }
          else{
            console.log('Password did not match');
             res.redirect('/');
          }
        });
      }
      else{
        console.log('The username ' + username + ' was NOT found in     the database');
      }
   });
});

服务器端代码:

function login(){
  console.log("login: " + usernameField.value, pwField.value);
  console.log('login button clicked');

  var postRequest = new XMLHttpRequest();
  var requestURL = '/login';
  postRequest.open('POST', requestURL);

  var requestBody = JSON.stringify({
    personId: usernameField.value,
    username: usernameField.value,
    password: pwField.value
  });

  postRequest.setRequestHeader('Content-Type', 'application/json');
  postRequest.send(requestBody);

  usernameField.value= "";
  pwField.value = "";

}
回答如下:

正如你最后送您的客户端代码我们进行了修复双方的:

思路是JSON有效载荷发送到服务器和从服务器获取和行为取决于状态代码JSON响应。

所以,服务器端部分不返回重定向 - 客户端不重定向本身。

1)的服务器端

app.post('/login', async (req, res) => {
  try {
    const collection = mongoDBDatabase.collection('accounts');
    const {username, password} = req.body;

    const user = await collection.findOne({username});
    if (
      user &&
      await bcryptpare(password, user.password.substr(1))
    ) {
      res.status(200).send({});
      return;
    }

    res.status(403).send({message: 'Access denied'});
  }
  catch (error) {
    console.log(error);
    res.status(500).send({error: error.message});
  }
});

2)客户端

function login(){
  console.log('login:',  usernameField.value, pwField.value);
  console.log('login button clicked');

  // request initialization
  var request = new XMLHttpRequest();
  request.setRequestHeader('Content-Type', 'application/json');
  request.responseType = 'json';
  request.open('POST', '/login');
  request.send(
    JSON.stringify({
      username: usernameField.value,
      password: pwField.value
    })
  );

  // request handling
  request.onload = function(e) {
    // success, redirecting user
    if (this.status == 200) {
      window.location.href = '/username';  
      return;
    }

    // got 403 from server, credentials are invalid
    if (this.status == 403) {
      alert('Username and/or password invalid.');
      return;
    }

    // system error raise
    if (this.status == 500) {
      alert('System error. Contact support.');
      return;
    }
  };
}

res.redirect不重定向任何地方

最喜欢的我的问题,我看到类似的人,但他们是不一样的决议。我res.redirect简单的只是什么都不做。该页面保持不变,绝对没有重定向的尝试。

我试图把在其他部位的res.redirect但后来我得到的错误。我只是希望页面登录后重定向到另一个。

app.post('/login', function (req, res) {
  var usernameCollection = mongoDBDatabase.collection('accounts');
  var username = req.body.username;
  var enteredPassword = req.body.password;

  usernameCollection.findOne({
    $or:[
          { username: username}
        ]
    }).then(function(user){
      if (user) {
        console.log('That username was found in the database');
        bcryptpare(enteredPassword, user.password.substr(1), function(err, result){
          if(result == true){
              console.log('Password matches!');
              console.log('logged in as ' + username);
              usercurrentlyloggedin = username;
              res.redirect('/username');
          }
          else{
            console.log('Password did not match');
             res.redirect('/');
          }
        });
      }
      else{
        console.log('The username ' + username + ' was NOT found in     the database');
      }
   });
});

服务器端代码:

function login(){
  console.log("login: " + usernameField.value, pwField.value);
  console.log('login button clicked');

  var postRequest = new XMLHttpRequest();
  var requestURL = '/login';
  postRequest.open('POST', requestURL);

  var requestBody = JSON.stringify({
    personId: usernameField.value,
    username: usernameField.value,
    password: pwField.value
  });

  postRequest.setRequestHeader('Content-Type', 'application/json');
  postRequest.send(requestBody);

  usernameField.value= "";
  pwField.value = "";

}
回答如下:

正如你最后送您的客户端代码我们进行了修复双方的:

思路是JSON有效载荷发送到服务器和从服务器获取和行为取决于状态代码JSON响应。

所以,服务器端部分不返回重定向 - 客户端不重定向本身。

1)的服务器端

app.post('/login', async (req, res) => {
  try {
    const collection = mongoDBDatabase.collection('accounts');
    const {username, password} = req.body;

    const user = await collection.findOne({username});
    if (
      user &&
      await bcryptpare(password, user.password.substr(1))
    ) {
      res.status(200).send({});
      return;
    }

    res.status(403).send({message: 'Access denied'});
  }
  catch (error) {
    console.log(error);
    res.status(500).send({error: error.message});
  }
});

2)客户端

function login(){
  console.log('login:',  usernameField.value, pwField.value);
  console.log('login button clicked');

  // request initialization
  var request = new XMLHttpRequest();
  request.setRequestHeader('Content-Type', 'application/json');
  request.responseType = 'json';
  request.open('POST', '/login');
  request.send(
    JSON.stringify({
      username: usernameField.value,
      password: pwField.value
    })
  );

  // request handling
  request.onload = function(e) {
    // success, redirecting user
    if (this.status == 200) {
      window.location.href = '/username';  
      return;
    }

    // got 403 from server, credentials are invalid
    if (this.status == 403) {
      alert('Username and/or password invalid.');
      return;
    }

    // system error raise
    if (this.status == 500) {
      alert('System error. Contact support.');
      return;
    }
  };
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论