I'm using Angular 6 with an HTTP Interceptor configured to apply bearer token to outgoing requests.
-
In the dev build (
ng serve
), the token is applied and everything works fine. :-) -
In the production build (
ng serve --prod
) the request is sent out without bearer token. :-(
In the prod build, I have verified the header is being applied, by dumping the headers to the console after applying them.
I have no idea why they are excluded from the http request.
There are not differences in my environment
files.
What else should I be looking at?
What can I do to fix this?
At first I thought this was an issue between my local environment and my staging environment, but then I tried running ng serve --prod
locally and saw the same results.
All that to say, everything is identical except one being a production build and one being a dev build.
Here's the Interceptor code:
import { Injectable } from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with jwt token if available
let currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (currentUser && currentUser.token) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${currentUser.token}`
}
});
console.log('headers:', request.headers); // <---- I can see headers in console output
}
return next.handle(request);
}
}
from Angular 6 POST request sent out without Bearer token only with --prod?
No comments:
Post a Comment