Estoy tratando de enviar una solicitud HTTP PUT a una API que acepta un objeto JSON en su cuerpo. Todo funciona bien, excepto si quiero establecer una propiedad del cuerpo en undefined
, esa propiedad se eliminará por completo del objeto de respuesta (como si llamara al operador de delete
para esa propiedad). Revisé y puedo confirmar que el accesorio dado está allí, con el valor de undefined
siempre que el objeto se pase a httpClient.put()
.
¿Alguien sabe por qué sucede esto? ¿Es este un comportamiento esperado para el cliente http o hay un error en alguna parte?
El comportamiento que describe es el comportamiento esperado de HttpClient
. En realidad, es el comportamiento de JSON.stringify()
que HttpClient
usa detrás de escena.
A diferencia de JavaScript, JSON no tiene el concepto de undefined
. Si algo no está definido, simplemente no está definido. No existe en absoluto. Entonces, cuando JSON.stringify()
obtiene un objeto con una propiedad que es igual a undefined
, lo omite.
Si necesita esta propiedad en el cuerpo de su solicitud, intente cambiar su valor a null
, cadena vacía o cero (dependiendo de su lado del servidor).