Развертывание приложения Angular на Nginx не отправляет заголовок авторизации в веб-службу - PullRequest
1 голос
/ 13 мая 2019

Я новичок в Angular и Docker.Я пытаюсь развернуть приложение angular 6 на Nginx в Docker-контейнере.Мое угловое приложение будет вызывать веб-сервисы с токеном авторизации.Он отлично работает в моей среде разработки с --proxy-config, но не работает в контейнере Docker.Я попытался перехватить HTTP-запрос и обновить URL-адрес веб-службы, но он не отправляет заголовки авторизации.Как мне вызывать веб-сервисы с пользовательскими заголовками?

environment.ts

export const environment = {
production: false,
calculateServiceAPIURL: 'http://localhost:8762'
};


import { Injectable } from '@angular/core';
import {
    HttpRequest,
    HttpHandler,
    HttpEvent,
    HttpInterceptor
} from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from './../environments/environment';

@Injectable({
    providedIn: 'root'
})

export class TokeninceptorService implements HttpInterceptor {

constructor() { }

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    console.log(req.headers);
    req = req.clone({
        url: environment.calculateServiceAPIURL + req.url,
        setHeaders: {
            'Content-Type': 'application/json',
            Authorization: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJtYWxhdi5wYXJpa2hAeWFob28uY29tIiwidXNlciI6IntcImlkXCI6MSxcImVtYWlsXCI6XCJtYWxhdi5wYXJpa2hAeWFob28uY29tXCIs'
        }
    });
    return next.handle(req);
}

}

Сообщение об ошибке: Доступ к XMLHttpRequest по адресу http://localhost:8762/binaryTree/calculateSum' from origin 'http://localhost:4200' заблокирован политикой CORS: Ответ на предполётный запрос не проходит проверку контроля доступа: у него нет статуса HTTP ok.

enter image description here

Заголовки запросов и ответов

enter image description here

Сервер не получает заголовок авторизации, из-за которого он отвечаетс 401 статусом несанкционированного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...