Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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 如何在Angular 4中登录?_Javascript_Angular_Http - Fatal编程技术网

Javascript 如何在Angular 4中登录?

Javascript 如何在Angular 4中登录?,javascript,angular,http,Javascript,Angular,Http,我是新来的。可能这个问题很简单,但我无法登录时,我试图登录表单按钮点击 在ngOnInit()内部调用时,我可以从getAdmin()获取数据。下面是代码 WebService类 getAdmin() { return this.http.get('http://localhost:3000/admin/1') .map(res => res.json()); } 当我从登录按钮单击调用下面的方法时,我无法获取数据并导航到主页页面 登录组件 loginUser(e)

我是新来的。可能这个问题很简单,但我无法登录时,我试图登录表单按钮点击

ngOnInit()
内部调用时,我可以从
getAdmin()
获取数据。下面是代码

WebService类

getAdmin() {

    return this.http.get('http://localhost:3000/admin/1')
    .map(res => res.json());
  }
当我从登录按钮单击调用下面的方法时,我无法获取数据并导航到
主页
页面

登录组件

loginUser(e){

    var username = e.target.elements[0].value;
    var password = e.target.elements[1].value;
    console.log(username, password);

    this.web.getAdmin().subscribe((admin) => {
      console.log(admin);
      this.admin = admin;

      if(username == this.admin[0].Username && password == this.admin[0].Password) {   
        localStorage.setItem('currentUser', JSON.stringify(this.admin[0].Username));
        this.router.navigate(["home"]);
      }    
    });

  }
如果登录失败,我将被重定向到
http://localhost:4200/?uname=admin&psw=admin

在日志中,我得到了

XHR加载失败:获取“”

导航到


调试代码会将我抛出方法,日志中不会出现任何错误。

使用
ngSubmit
事件而不是
submit
submit
将在点击
submit
按钮时执行默认表单发布,其中as
ngSubmit
阻止页面
post back
并抑制实际表单发布

<form (ngSubmit) = "loginUser($event)">

使用
ngSubmit
事件而不是
submit
submit
将在点击
submit
按钮时执行默认表单发布,其中as
ngSubmit
阻止页面
post back
并抑制实际表单发布

<form (ngSubmit) = "loginUser($event)">


如何调用
登录用户
方法?表单提交还是锚定点击?首先,出于安全原因,您应该向服务器发送一篇帖子,帖子正文中包含密码。然后,你必须在服务器端检查用户名和密码是否匹配,如果匹配,你必须向你的angular应用程序发送一个答案,用户在里面。通过这种方式,您只需检查用户是否在场。@PankajParkar,使用
@BenjaminLucidarme,我也将尝试您的方法。同时,请建议是否有上述方法的解决方案。谢谢您的评论。@Tauqir请尝试下面的建议如何调用
loginUser
方法?表单提交还是锚定点击?首先,出于安全原因,您应该向服务器发送一篇帖子,帖子正文中包含密码。然后,你必须在服务器端检查用户名和密码是否匹配,如果匹配,你必须向你的angular应用程序发送一个答案,用户在里面。通过这种方式,您只需检查用户是否在场。@PankajParkar,使用
@BenjaminLucidarme,我也将尝试您的方法。同时,请建议是否有上述方法的解决方案。谢谢您的评论。@Tauqir请尝试下面的建议我正在获取
XHR加载失败:POST”http://localhost:4200/sockjs-节点/503/eov5vc30/xhr_流式传输?t=1502527731843”。导航到http://localhost:4200/?uname=admin&psw=admin XHR已完成加载:获取“http://localhost:4200/sockjs-node/info?t=1502527765786“
非常感谢。我现在可以登录了。我在“@angular/forms”中缺少
import{FormsModule}和导入:[BrowserModule,FormsModule,HttpModule],在
app.module.ts
侧,我得到
XHR加载失败:POST”http://localhost:4200/sockjs-节点/503/eov5vc30/xhr_流式传输?t=1502527731843”。导航到http://localhost:4200/?uname=admin&psw=admin XHR已完成加载:获取“http://localhost:4200/sockjs-node/info?t=1502527765786“
非常感谢。我现在可以登录了。我在“@angular/forms”中缺少
import{FormsModule}和导入:[BrowserModule,FormsModule,HttpModule],在
app.module.ts侧