Necesito llamar a este método de parche desde Javascript. Pero el cuerpo de la solicitud no está configurado. Siempre es nulo. Es como si se necesitara algo más en los parámetros $.ajax para enviar el cuerpo de la solicitud. Sé que el problema está en el cuerpo, porque si configuro en el lado del servidor el bady como obligatorio, la llamada funciona, también funciona si cambio solo el tipo de llamada a "POST". Pero necesito un Patch con cuerpo.
En el lado del servidor funciona bien (JAVA y Spring):
@PatchMapping @ResponseStatus(code = HttpStatus.OK) @Operation(description = "Update User record") ResponseEntity<UserDTO> updateUser( @PathVariable("userId") @Parameter(description = "User", required = true, in = ParameterIn.PATH) Long userId, @NonNull @RequestBody UserDTO userDTO); }En el lado de JS (el error seguro está aquí):
var url = ... var dataStatus = {"status": "A"}; $.ajax({ url : url, type : 'PATCH', contentType : 'application/json', processData: false, dataType: 'json' async : false, cache: false, crossDomain: true, data : JSON.stringify(dataToSend), success : function(data) { if (data == null) { console.error("Error"); } if (callback) { callback(data); } }, error : function(error) { console.error("Ajax call error occurs during..."); }, beforeSend : function(xhr) { debugger; xhr.setRequestHeader('Authorization', 'Bearer ' + sessionStorage.accessToken); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.setRequestHeader('X-Xss-Protection', '1; mode=block'); } });La llamada funciona pero el cuerpo de la solicitud siempre es nulo. Pero si cambio el tipo de llamada a "PUT" o "POST", el cuerpo de la solicitud se configura correctamente, pero necesito una llamada "Patch". ¿Debo agregar algún otro encabezado http o cambiar algo?
¡Gracias!