Angular 22 sends uploads with fetch.

withXhr() gets the progress bar back.

fetchthe default0%
0 UploadProgress events · jumps to 100% when the response arrives
withXhr()browser config only59%
35 UploadProgress events · the bar moves as the bytes go
Angular 22.2 · the same 16 MB upload in Chromium · reportProgress: true
gdhami.net