java - 为什么使用帖子上传文件后页面会重新加载?(角+弹簧启动)
问题描述
文件上传正常,但应用程序在收到后端响应后正在重新加载。
角度代码
HTML
<input hidden="true" accept="text/pdf, .pdf" type="file" #pdfInput id="report"
(change)="validateFile($event)">
<mat-card class="reportName">
<input readonly matInput name="fileHidden" formControlName="pdfFile">
</mat-card>
<button class="mat-raised-button" [disabled]="this.uploadReport.invalid" (click)="saveReport()">Upload Document</button>
TS
saveReport() {
console.log(this.uploadReport.value.category);
this.reportService.saveReport(this.uploadReport.value.category, this.uploadFile).subscribe((val) => {
console.log(val);
})
}
saveReport(category :string, dataFile : FormData): Observable<ApiResponse> {
return this.http.post<ApiResponse>(this.ROOT_URL + '/report/' + category , dataFile, {reportProgress: true, responseType: 'json'});
}
弹簧靴
@PostMapping("/{category}")
public ResponseEntity<Response<String>> saveReport(@RequestParam("file") MultipartFile multipartFile,
@PathVariable String category) throws IOException
return ResponseEntity.ok(reportService.saveReport(category, multipartFile));
}
解决方案
我认为应用程序不会因为收到来自后端的响应而重新加载。您的上传按钮是表单中唯一的按钮吗?如果然后尝试阻止表单的提交行为:
<button (click)="saveReport(); $event.preventDefault()">
或者
将 type='button' 添加到该按钮。表单中没有任何定义类型的按钮就像提交按钮
推荐阅读
- node.js - 为什么使用 axios 向不同域发送 GET 请求时未附加 cookie?
- python - 如何在 Django orm 中链接和过滤来自 3 个表的数据
- python-2.7 - 在python中打印时如何摆脱方括号和单引号
- powershell - 尝试使用特定字符串编辑 txt 文件
- jquery - JQ Grid 工具栏搜索不适用于日期列
- c# - 为 SingleOrDefault Linq 方法定义默认值
- dynamics-crm - 创建一个工作流/对话,提示更新现有字段?
- amazon-web-services - 如何使用 AWS 帐户登录而不是 Cognito 登录来保护 Kibana?
- spring-boot - 使用ShedLock让ThreadPoolTaskScheduler处理多个调度任务的分布式锁问题
- kotlin - Elvis 运算符的行为?:在 Kotlin 中