我知道我可以在不使用拦截器的情况下做下一件事,但是我试图弄清楚在每个httpRequest上添加了额外的参数。我一直在阅读(https://github.com/angular/angular/issues/18812)这个问题,它复制了参数。我尝试了提供的解决方法,但是它不起作用。
前段时间,我看到了一种简单的方式来做类似 const newReq = req.url +'api_key'的事情(请不要直译,它不能那样工作),但是我可以。记得。任何人都可以让我知道如何获得预期的行为吗?
预期的行为-> https://api.xxx.com/xxx&api_key='api_key'
当前行为-> https://api.xxx.com/xxx&api_key=undefined&api_key=“无论如何”
@Injectable()
export class ApiKeyInterceptorService implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let newParams = new HttpParams({fromString: req.params.toString()});
newParams = newParams.append('api_key', '123123123asdasdasd');
const requestClone = req.clone({
params: newParams
});
return next.handle(requestClone);
}
}
答案 0 :(得分:0)
设置应该可以解决问题:
newParams = newParams.set('api_key', '123123123asdasdasd');