在Nginx上部署Angular应用未将授权标头发送到Web服务

时间:2019-05-13 04:54:45

标签: angular docker nginx

我是Angular和Docker的新手。 我正在尝试在Docker容器中的Nginx上部署angular 6应用程序。 我的角度应用程序将使用授权令牌调用网络服务。 它在我的开发环境中使用--proxy-config可以正常工作,但在docker容器中不起作用。我尝试拦截HTTP请求并更新Web服务的URL,但未发送授权标头。我该如何调用带有自定义标头的Web服务?

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”   “ http://localhost:4200”已被CORS政策屏蔽:对   飞行前请求未通过访问控制检查:它没有   HTTP正常状态。

enter image description here

请求和响应标头

enter image description here

服务器未收到授权标头,因此它以401未经授权的响应状态进行响应。

0 个答案:

没有答案