【问题标题】:Spring Boot + Angular file upload HTTP 417 errorSpring Boot + Angular 文件上传 HTTP 417 错误
【发布时间】:2019-06-25 02:30:39
【问题描述】:

在第一次上传后上传任何其他文件后,我收到 HTTP - 417 错误和我的 Spring UploadController.java 文件下定义的文件未上传消息。

Spring Boot + Angular file upload getting error 400 bad request

解决我的上述查询后,我面临错误 417,我的上述查询也包括所有代码集,包括我的 Spring Controller 文件以及我的 Angular 组件。

简而言之,每次我需要清除浏览历史记录和 cookie 以再次成功上传时,我只能上传 1 个文档。 奇怪的是不知道这一点。

【问题讨论】:

  • 似乎在您的下一个请求中您没有设置必要的 http 标头。您应该检查:1)您的服务器端服务/控制器需要接收哪些标头 2)您在请求中发送哪些标头。您还可以将工作请求中的所有标头与不工作请求中的所有标头进行比较,以便了解失败点
  • @AngeloImmediata - 如果标题有任何问题,那么文件如何上传一次。在不清除缓存的情况下一个接一个地上传文件时出现问题
  • 这就是为什么我告诉你调查请求并将第一个请求与下一个请求进行比较。 HTTP 状态码 417 是服务器在期望请求中找不到标头,所以我会调查请求
  • @AngeloImmediata 好的,我尝试在这两种情况下调查标题,唯一的区别在于标题消息 - http 失败响应 URL:417 好的
  • @AngeloImmediata - stackoverflow.com/questions/54462480/… 这个查询包含 Spring + Angular 的所有代码集

标签: java angular spring spring-boot


【解决方案1】:

当您尝试上传第二个文件时,您必须重置您的 formData。

public formdata = new FormData(); 
    onSubmit() { 

    this.resetform();  //Order matters here
    let headers: any = new Headers(); 
    headers.append('Content-type', 'undefined'); 

    formData.append("selectFile", this.formData); 
    const req5 = new HttpRequest('POST', 'url as hosted on TOMCAT', formData, 
    reportProgress: true, 
    responseType: 'text' 
    }); 
    return this.httpClient.request(req5).subscribe(e => {( 
    console.log(e); 

    )} 
    } 

    resetform() { 
    this.formData = new FormData(); 
    }  

希望能解决你的问题!!!

【讨论】:

  • 我接受这个作为答案,因为它解决了我的问题,干杯!
猜你喜欢
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 2020-11-28
  • 2020-04-19
  • 2021-06-09
  • 1970-01-01
  • 2018-08-07
  • 2019-06-25
相关资源
最近更新 更多