我是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正常状态。
请求和响应标头
服务器未收到授权标头,因此它以401未经授权的响应状态进行响应。