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