- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,即 JWT token 未仅添加到特定 API 的 header 中,我不知道为什么......httpOptions.headers 的内容在每个函数中都不同,您可以在下面的屏幕截图中看到。
我的书签服务
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from 'src/environments/environment';
import { UserAuthService } from '../user-auth/user-auth.service';
import { Bookmark } from 'src/app/models/api/bookmarks/Bookmark';
let httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
}),
};
@Injectable({
providedIn: 'root',
})
export class BookmarksService {
jwtToken: string | null = this.userAuthService.getJwtToken();
private apiUrl: string = environment.apiUrl;
constructor(
private http: HttpClient,
private userAuthService: UserAuthService
) {}
// Get bookmarks
getBookmarks(): Observable<Bookmark> {
this.addJwtToHeaders();
const url: string = `${this.apiUrl}/bookmark/`;
return this.http.get<Bookmark>(url, httpOptions);
}
addToBookmark(id: string): Observable<any> {
this.addJwtToHeaders();
console.log(httpOptions.headers);
const url: string = `${this.apiUrl}/bookmark_add/${id}/`;
return this.http.post<any>(url, httpOptions);
}
addJwtToHeaders(): void {
const auth = httpOptions.headers.get('Authorization');
if (!auth) {
if (!this.jwtToken) return;
httpOptions.headers = httpOptions.headers.append(
'Authorization',
`Token ${this.jwtToken}`
);
}
}
}
因此函数 getBookmarks() 有效,但函数 addToBookmark() 无效。
最佳答案
http.post()
的签名不同于 http.get()
。
GET: get(url, options)
POST:post(url, body, options)
因此,在您的 POST 请求中,您将在 body
参数中传递您的 options
。
您可以通过添加 body 数据来修复:
this.http.post<any>(url, body, httpOptions)
关于Angular JWT Token 添加到 lazyUpdate 而不是 HttpHeaders 中的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73598202/
在我的 Angular 项目中,我使用的是 HttpClient (@angular/common/http)。我使用 POST、GET 和 DELETE 方法成功地执行了大量 API 请求,始终发送
我对 HttpHeaders (angular 4.3.0) 和 Karma 有疑问。我编写了一些测试,当我使用 npm test 命令运行它们时,http 查询是未经授权的,因为未设置 token
我有一个问题,即 JWT token 未仅添加到特定 API 的 header 中,我不知道为什么......httpOptions.headers 的内容在每个函数中都不同,您可以在下面的屏幕截图中
我是一名优秀的程序员,十分优秀!