The whole connection is encrypted by https, the request body is treated the same as the url, the headers or the response. The only unencrypted parts are the IP addresses/ports and the domain name (if SNI without ECH is used).
CDNs already terminate TLS connections so they can cache GET requests.
CDNs already terminate TLS connections so they can cache GET requests.