如何使重定向等待来自服务器的响应?

时间:2017-05-06 12:46:48

标签: javascript reactjs superagent react-router-v4

首先,我想提一下,我一般都是全新的反应和javascript,我经历了很多类似的问题线程,但是没有一个解决方案似乎有帮助,因为它们主要产生更多错误。

我正在进行的项目非常简单,我想在这里做的是:当用户按下"登录"在登录表单上,我保存插入的用户名和&密码到状态并将其发送到服务器进行验证。

我使用react-router-dom进行路由,并且我只能在登录后访问该页面,否则会将您重定向到登录页面。所以这里发生的是第一次按下重定向没有发生,页面保持登录状态。

据我所知,这可能是一种非常愚蠢的登录系统方式, 但也许有办法使这项工作?

感谢您的时间。

onSubmit(e) {
    e.preventDefault();
    console.log(this.state);
    var self = this;
    request.post('/user/login')
      .send(this.state)
      .end(function(err, res){
          console.log(res.body);
          if (res.body.isValid) {
              self.props.history.push('/');
          }
        });
}   

1 个答案:

答案 0 :(得分:0)

只需重定向??

onSubmit(e) {
e.preventDefault();
console.log(this.state);
var self = this;
request.post('/user/login')
  .send(this.state)
  .end(function(err, res){
      console.log(res.body);
      if (res.body.isValid) {
          self.props.history.push('/');
      }else{
        window.location.href="/login";
      }
    });
}