Angular 9 - typescript - headers.set - tidak menambahkan header
Oct 02 2020
Saya mencoba menggunakan injektor sudut untuk menambahkan token pembawa
meskipun kode tersebut dijalankan, header tidak ditambahkan
ada banyak kode berbeda di luar sana, saya mencoba beberapa di antaranya, semuanya mengarah ke masalah yang sama
tidak ada pembawa yang dikirim dengan permintaan tersebut
pada gambar di bawah ini saya berhenti di clone / headers.set , tetapi bahkan setelah langkah itu, peta header masih kosong
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
constructor(
private appService: AppService
) { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add auth header with jwt if user is logged in and request is to the api url
let authentication: Authentication = this.appService.getUserSession();
const isLoggedIn = authentication && authentication.token;
const isApiUrl = request.url.startsWith(environment.apiUrl);
//------------------------------------- add id's
let body = request.body;
if(!body)
{
body={};
}
body['clientId'] = environment.clientId;
body['clientSecret'] = environment.clientSecret;
request = request.clone({
body: body
});
//--------------------------------------- add jwt
if(authentication)
{
request = request.clone(
{
headers: request.headers.set('Bearer', authentication.token)
}
);
}
return next.handle(request);
}
}
terima kasih telah membantu saya dalam hal ini
Jawaban
1 Adjunta Oct 02 2020 at 10:01
Menurut prototipe metode clone (), Anda mendapat properti objek untuk menyetel header (bernama setHeaders)
setHeaders?: {
[name: string]: string | string[];
};
Anda harus melakukan sebagai berikut
request = request.clone(
{
setHeaders: {
Authorization: `Bearer ${authentication.token}`
}
}
);
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'