I need to send a POST request and I do not care if it succeeds or fails => "fire and forget". Immediately after sending the request a hard redirect is initiated. This causes the Angular HttpClient POST request to be cancelled.
// sending POST request
this.httpClient.post('someUrl', {}).subscribe();
// hard redirect causes cancelation of POST request
window.location.replace('someOtherUrl');
Is there any way to send the request without it being cancelled?
Use finalize
this.httpClient.post('someUrl', {})
.pipe(finalize(() => window.location.replace('someOtherUrl'))
.subscribe();
or add
this.httpClient.post('someUrl', {})
.subscribe()
.add(() => window.location.replace('someOtherUrl'));
Finalize will emit for next
or error
, add
should be called on unsubscribe (HttpClient automatically completes).