开发者问题收集

Angular5:TypeError:您在需要流的地方提供了“未定义”。您可以提供 Observable、Promise、Array 或 Iterable

2018-03-28
14216

我尝试通过Angular5实现登录功能。我有一个错误。身份验证方法:

096867898

这是我的登录表单:

206851498

我的代码编译,我可以访问登录页面。但是,当我输入登录和密码时,我会出现错误。而且我看不到对服务器的请求。我认为错误是在我的HTTP请求之前。这是我遇到的错误:

604079410

该错误在行 < form; form(ngsubmit)=“ onsubmit(loginform)”#loginform =“ ngform =” ngform =“ ngform” >

我看不到问题所在。我想念什么?谢谢 谢谢

1个回答

在发布的代码中我没有看到任何可能导致请求无法发送的内容。也许你在某个地方有一些 http 拦截器?

你的代码中也有一些错误

HttpHeaders 是不可变的

因此,如果你想要正确发送标头,你需要将代码更改为

let headers = new HttpHeaders().append('Content-Type', 'application/json');

content-type 你不需要为返回 json 的请求设置 content-type, httpClient 默认会自动将响应转换为 json 对象

错误的查询参数

应该是 = 而不是 ?

'/users?login='+JSON.stringify(login),

component

  • this.connected 永远不会是布尔值,而是对可观察对象的引用

  • 在 subcribe 方法中,数据是布尔值,不是对象(因为您在服务中映射了它)

注意 我希望您展示的身份验证方法不是最终方法。就目前情况而言,它假设服务器可以返回用户的详细信息,包括明文密码……如果您的用户将密码存储在纯文本服务器端,从安全角度来看,这确实很糟糕

David
2018-03-28