I am trying to set header for the authorized user using interceptor. But, setting headers turns post method to options. I have read about preflight requests and cors, but still not able to solve it. Want to know if it is related to me or something should be done from backend .
P.S: Tested same thing with Postman, works.
Here is the interceptor where I set headers:
import {Injectable} from "@angular/core";
import {
HttpEvent,
HttpInterceptor,
HttpHandler,
HttpHeaders,
HttpRequest
} from "@angular/common/http";
import {Observable} from "rxjs/Observable";
import {AuthService} from "../../auth/auth.service";
@Injectable()
export class SetTokenIfLoggedIn implements HttpInterceptor {
constructor(private _authService: AuthService) {}
intercept(
req: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
let cloneReq = req;
let headers = new HttpHeaders()
.append("api-token", this._authService.getToken())
.append("Accept", "application/json, text/plain, */*")
if (this._authService.isLogged()) {
cloneReq = req.clone({
headers: headers
});
}
return next.handle(cloneReq);
}
}
Error message:
Request headers
Response headers