使用Httpinterceptor动态设置Content-Type标头(multipart / data)

时间:2018-01-05 05:07:57

标签: angular typescript

我想上传CSV,我正在使用HttpInterceptor作为中间件。

对于正常请求,它工作正常但在上传CSV时我想将我的请求标题更改为“multipart / data”。

请按照代码 -

export class NoopInterceptorService implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

        let token = this._tokenManagerService.getToken();
        const newRequest = request.clone({
            setHeaders: {
                'Content-Type': 'application/json',
                'Authorization': `${token}`
            }

        });
              return next.handle(newRequest);
    }
}

请给我一些相同的建议。

1 个答案:

答案 0 :(得分:0)

你的Http拦截器功能应该是这样的。

formElement.val(value);

现在您需要在服务功能中设置 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { if (!req.headers.has('Content-Type')) { req = req.clone({headers: req.headers.set('Content-Type', 'application/json')}); } req = req.clone({headers: req.headers.set( 'Authorization': ${token}``)}); return next.handle(req); } 标头。所以itercepter检查是否找到然后没有设置。