javascript - 如何让重定向等待服务器的响应?

标签 javascript reactjs superagent react-router-v4

首先,我想提一下,我对 React 和 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('/');
          }
        });
}   

最佳答案

简单地重定向??

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";
      }
    });
}   

关于javascript - 如何让重定向等待服务器的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43820643/

相关文章:

javascript - 从父组件传递的 props 只能在渲染中使用吗?

javascript - 尝试使用 node.js supertest 发布 multipart/form-data

javascript - React - 每个映射项目的 super 代理请求

javascript true 和 true 在 if 语句中返回 false?

javascript - 登录或注册后显示一次模态

javascript - 使 TinyMCE 输出单个跨度而不是包装器跨度

node.js - 如何将 cookie 与 superagent 一起使用?

javascript - Bootstrap 下拉事件不适用于 bootstrap-ui

css - 如何使 Laravel 中的 React 应用程序在公共(public)文件夹中使用相同的 css

javascript - react-fullpage.js - 如何在特定部分(而不是第一部分)加载网站?