2017-10-07 188 views
0

我正在编写一个完整的堆栈应用程序,在节点js中使用koa框架作为后端,角点4作为前端。问题是,当我通过前端在后端API上发布post请求时(即,当我想登录时),我得到一个带有“发生网络错误”文本和代码19的DOM异常。后端本身工作正常用邮差测试它)。这里是我的角码的片段,其中包括我提出请求的服务方法和处理响应的组件方法。前端和后端无法通信

服务方法:

authenticate(username: string, password: string): Observable<boolean> { 
    return this.http.post('localhost:3000/api/sign-in', 
     JSON.stringify({ username: username, password: password })) 

     .map((response: Response) => { 
      let token = response.json().token; 
      if (token) { 
      this.token = token; 
      localStorage.setItem('currentUser', JSON.stringify({ username: username, token: token})); 
      return true; 
      } else { 
      return false; 
      } 
    }); 
    } 

组件的方法:

logIn(): void { 
    this.authenticationService.authenticate(this.username, this.password) 
    .subscribe(result => { 
     if (result == true) { 
     this.router.navigate(['/people']); 
     } else { 
     console.log('Username or password incorrect!'); 
     } 
    }); 
    } 
+0

我想有不需要'http.post'的第二个参数'JSON.stringify'。此外,您可以在浏览器的开发工具中打开“网络”选项卡,查看请求详细信息以了解其失败原因 –

+0

删除'JSON.stringify'不能解决该错误。此外,我无法在网络标签中看到我的发布请求。我甚至用'Content-Type:application/json'添加了'HttpHeaders'对象作为我的请求的头部,并且也没有修复这个错误。 – Domba

+0

也许你已经在网络标签中启用了一些过滤器,看看不同的浏览器 –

回答

1

哦,你忘了你的URL指定的协议,它应该是这样的:

this.http.post('http://localhost:3000/api/sign-in', ... 
+0

非常感谢!不知道那是怎么回事...... – Domba