无法删除内容类型标题angular8

时间:2019-08-09 21:15:00

标签: angular

我是Angle 8的新手,我正尝试发布带有json数据的文件以提供服务。由于如果请求标头中有可用的内容类型标头,我的服务将不接受多部分表单数据请求。我尝试删除标头,但令我惊讶的是,我在请求标头中看到内容类型标头和值。

我的代码

addProd(formData: FormData): Observable<any> {
let headers = new HttpHeaders();
headers = headers.delete("content-type");
//delete headers['content-type'];
//headers.set('content-type',undefined);
const req = new HttpRequest('POST', apiUrl + "product", formData,{
  headers:headers
});
return this.http.request(req).pipe(
  tap(_ => this.log("added product")),
  catchError(this.handleError("add product"))
);}

我的表单数据

const formData: FormData = new FormData();
formData.append('file', this.fileData, this.fileData.name);
formData.append('product', JSON.stringify(productData));

来自mozilla浏览器的请求标头

request headers

我尝试将值设置为undefined,但是在控制台values are undefined中却出现异常。

任何人都可以帮助我如何在请求中没有内容类型标头的情况下发布数据。

1 个答案:

答案 0 :(得分:1)

您可以尝试在拦截器中删除所需的标头(如果可能的话-有些标头是无法删除的)。

1-构建实现cross <- merge(data[sex=="M",], data[sex=="F",], by=NULL) df <- data.frame(var1=cross$var1.x/cross$var1.y, var2=cross$var2.x/cross$var2.y) df var1 var2 1 0.3333333 0.7500000 2 0.6666667 0.8750000 3 0.2500000 0.6666667 4 0.5000000 0.7777778 5 0.2000000 0.6000000 6 0.4000000 0.7000000 接口的服务

HttpInterceptor

2-完成此操作后,您需要在根模块(可能是@Injectable() export class RemoveHeaderInterceptor implements HttpInterceptor { intercept(req: HttpRequest<any>, next: HttpHandler) { // Get the headers without content-type const {'content-type', others } = req.headers; // As the request is immutable, clone the original // with the new headers const newReq = req.clone({ headers: others }); // dispatch the new request with the new headers // without content-type return next.handle(newReq); } } )上为服务提供特殊令牌(HTTP_INTERCEPTORS):

AppModule