Angular 22 sends uploads with fetch.
withXhr() gets the progress bar back.
fetch
the default
0%
0
UploadProgress events · jumps to 100% when the response arrives
withXhr()
browser config only
59%
35
UploadProgress events · the bar moves as the bytes go
Angular 22.2 · the same 16 MB upload in Chromium · reportProgress: true
gdhami.net