在没有 Ajax 和 jQuery 的 IE9/Angular 5/TypeScript 上使用 FormData

Using FormData on IE9/Angular 5/TypeScript without Ajax nor jQuery

在我的应用程序 Angular 5/Typescript 中,我有一个 UploadFile 组件,如下所示:

component.html

....
<form #formUpload id="formUpload">
   <input type="file" class="input-file-ghost" (change)="onChangeFile($event.target.files)">
</form>
....

component.ts

export class UploadFileComponent implements OnInit {

  @Input() .....;
  @Output() filesAdded = new EventEmitter<File>();
  @ViewChild('formUpload') formUpload: ElementRef;
  ...

  constructor() { .... }

  ngOnInit() { .... }

  onChangeFile(files: File[]) { ..... }
}

Use case

<app-upload-file
        [uploadFileConfig]="...."
        (filesAdded)="....">
 </app-upload-file>

**********

formCvData: FormData = new FormData();
onFileUploaded($event) {
  const uploaded = $event;
  this.formLmData.set('.....', uploaded, uploaded.name);
}

在 Chrome 和 Mozilla 浏览器上使用此组件时工作正常,但是当我继续使用 IE 9 时出现此错误:

'FormData' is undefined

我查看了 git 个问题和 Stackblitz 个项目,我没有找到任何可以用现代解决方案解决问题的东西。

重要提示: 我正在寻找不使用 jQuery[= 的解决方案53=]

预先感谢您的帮助。

FormData 在 IE9 中不可用:

https://developer.mozilla.org/en-US/docs/Web/API/FormData#Browser_compatibility

您必须自己手动收集和编码表单数据。