WordPress Version: 6.1
/**
* Sends Cross-Origin Resource Sharing headers with API requests.
*
* @since 4.4.0
*
* @param mixed $value Response data.
* @return mixed Response data.
*/
function rest_send_cors_headers($value)
{
$origin = get_http_origin();
if ($origin) {
// Requests from file:// and data: URLs send "Origin: null".
if ('null' !== $origin) {
$origin = sanitize_url($origin);
}
header('Access-Control-Allow-Origin: ' . $origin);
header('Access-Control-Allow-Methods: OPTIONS, GET, POST, PUT, PATCH, DELETE');
header('Access-Control-Allow-Credentials: true');
header('Vary: Origin', false);
} elseif (!headers_sent() && 'GET' === $_SERVER['REQUEST_METHOD'] && !is_user_logged_in()) {
header('Vary: Origin', false);
}
return $value;
}