Search code examples
angularmultipartform-dataangular-httpclient

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


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?


Solution

  • 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