【发布时间】:2018-08-29 01:26:18
【问题描述】:
我正在使用 Angular 4 的 HTTPClient 模块从数据库中检索数据。 对应的服务有如下方法,
getPosts() {
const httpHeaders = new HttpHeaders().set('Content-Type', 'application/json');
// tslint:disable-next-line:max-line-length
httpHeaders.set('Authorization for JWT', 'Token');
return this.http.get('http://localhost:9090/api/user' + '?user_id=' + this.user.id.toString(),
{headers: httpHeaders,
responseType: 'json'});
}
我从一个组件调用这个方法如下,
this.Servie.getPosts().subscribe(pos => {
console.log(pos);
});
但我在服务器端收到如下错误,
java.lang.RuntimeException: JWT 令牌丢失
客户端出错,
未能加载 http://localhost:9090/api/user?user_id=1:响应 预检具有无效的 HTTP 状态代码 500。
请纠正我哪里出错了?
我根据下面的讨论进行了更改,但仍然存在以下问题,
我想我现在搞砸了,我做了如下修改,
这是服务中写的代码,
const httpHeaders = new HttpHeaders()
.set('Content-Type', 'application/json')
// tslint:disable-next-line:max-line-length
.set('RequestAuthorization', 'Bearer ' + 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI5ODg0NjUxMjMzIiwidXNlcklkIjoiNSJ9.gwiZcx5I8rInXJGANvS9twupXjdjrzFdZNZ0K85u-KA8LXXDgDf27mUzUoiEyxRMg');
return this.http.get('http://localhost:9090/user' + '?user_id=' + this.user.id.toString(),
{headers: httpHeaders});
我正在调用上述服务,如下所示,
this.userServie.getPosts().map((res: Response) =>
console.log(res.text()));
但是服务没有命中,我没有在浏览器开发工具的网络选项卡中看到 GET 方法。我哪里错了?请纠正我。
【问题讨论】:
-
如果我错了,请纠正我,但标题不应该是 ('Authorization' , 'Bearer' + jwt_token_here)
-
承载者,你能告诉我这是什么吗?
-
stackoverflow.com/a/25850821/5283119 这是一个很好地解释承载和刷新令牌的链接。是的,您可以设置内容类型 application/json 但使用 JWT 令牌并不重要。 JWT 令牌是一种授权类型,用于告诉您的应用您就是您所说的自己。
标签: angular jwt httpclient angular4-httpclient