Angular 9: formData.append('key', null) actually appends 'null' string

Viewed 8527

Using Typescript/Angular 9:

const formData: FormData = new FormData();
formData.append('key', null);
console.log(formData.get('key'));

>> 'null'

this is a 'null' string, as opposed to null value.

I need to somehow append null (or undefined) value to the FormData. What can I do?

3 Answers

Any value passed into data.append will be converted to a string. The only way to accomplish sending a null value is the send an empty string. i.e. formData.append('key', ''); This will send a null value to the backend without stringifying it.

You can't, because the value is always converted to a string if it's not a USVString or Blob.

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

The field's value. This can be a USVString or Blob (including subclasses such as File). If none of these are specified the value is converted to a string.

However, if you delete a key and try to access it, it will return null by default.

let oFormData: FormData = new FormData();

oFormData.append('key1', null);
oFormData.get('key1'); // string 'null'
oFormData.delete('key1');
console.log(oFormData.get('key1')); // null

Try to set key to undefined:

const formData: FormData = new FormData();
formData.append('key', undefined);
console.log(formData.get('key'));
Related