首页 > 解决方案 > 不会在 AngularJs 中访问特定的 URL this.router.navigate()

问题描述

我正在使用 angularJS 制作注册表单,并使用引导模板进行设计。

这是我的表单,表单页面的路径是http://localhost:4200/signup

<form method="post" (submit)='register(username.value,email.value,password.value)'>
  <div class="form-group">
    <label for="name">Full name</label>
    <input type="text" id="name" #username class="form-control" placeholder="Enter your name">
  </div>
  <div class="form-group">
    <label for="remail">Email address</label>
    <input type="email" id="remail" #email class="form-control" placeholder="Enter email">
  </div>
  <div class="form-group">
    <label for="rpassword">Password</label>
    <input type="password" #password class="form-control" id="rpassword" placeholder="Password">
  </div>

  <button type="submit" class="btn btn-primary">Register</button>
</form>

但问题是当我点击submit button或点击时enter,它会自动刷新页面并显示Cannot POST /signup

因为这是我的component.ts file

register(name,email,password) {
this.userService.registerUser(name, email, password).subscribe(data => {
        if (data.success) {
          console.log('reaches');
          this.router.navigate(['user']);
        } else {
          console.log('error');
        }
      });
 }

它试图在 post 方法中转到/signup路径,但在component.ts文件中我给出了路径'/user'

它如何自动转到/signup?以及如何阻止它。

标签: htmlcssangularjsbootstrap-4

解决方案


您的表单正在尝试将数据发布到服务器。听起来您没有可以处理帖子的服务器,因此您收到错误消息。

要解决此问题,您需要一个可以处理表单发布的服务器。


推荐阅读