在Angular 4中,我想在所有HTTP请求中添加基本URL作为后缀,并使用拦截器修改标头,但这在某种程度上无法按预期工作。
下面的是相关代码,这是Angular reference
const BASE_URL = 'http://127.0.0.1:8080';
@Injectable()
export class NoopInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
setHeaders: {
Authorization: `${AUTH_PREFIX} ${this.authService.getToken()}`,
another: 'header'
},
url: request.url.concat(BASE_URL)
});
console.log('new request: ', request);
return next.handle(request);
}
试验1
在request.cone()
之后直接尝试concat
网址
request.url.concat(BASE_URL);
试验2
再次克隆请求并尝试添加到网址
const secureRequest = request.clone({
url: request.url.concat(BASE_URL)
});
以上都没有工作? Angular会阻止它吗?这是一种错误的方法吗?
答案 0 :(得分:1)
你没有正确使用concat。
应该是
url: BASE_URL.concat(request.url)
而不是反过来