I have an angular application which is running on my notebook at http://localhost:4200 I have a Java backend server where placed some rest api.
I am trying to call a simple GET method on the java backend but I always get CORS error.
Access to XMLHttpRequest at 'http://javabeckendserver:8060/pbackend/api/sa/tasktypes' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
I read this article https://angular.io/guide/build and I have followed the proxy configuration, but the error message is the same.
So I have created proxy.conf.json file with this content:
{
  "/pbackend/*": {
    "target": "http://javabeckendserver:8060",
    "secure": false,
    "logLevel": "debug"
  }
}
I configured it in angular.json file at serve tag as an option:
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "angular-app:build",
            "proxyConfig": "src/proxy.conf.json"
          }
Update: I use a Http Interceptor to add more property to the http request header this way:
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
    let customAuthType = this._tokenService.hasToken() ?  'Bearer '.concat(this._tokenService.getToken()): 'Basic ****';
    const headers = request.headers.set('Authorization', customAuthType)
                                   .set('Content-Type', 'application/json');
    return next.handle(request.clone({ headers }));
}
At the '****' has normal Base64 encoded string.
And here my method at the backend side:
    @PreAuthorize("hasRole('ROLE_TASK_TYPE_READER')")
    @GetMapping("/tasktypes")
    public ResponseEntity<List<TaskTypeDto>> findAllTaskType() {
        log.info(">> findAllTaskType()");
        return ResponseEntity.ok(taskTypeService.findAll());
    }
I have tested with postman the REST API and it worked fine as expected but not from Angular app.
what have I done wrong?
 
    