php – Problemas con el Protocolo CORS


Tengo un problema a la hora de realizar una peticion a un servidor externo.
La cuestion es que hace ya algún tiempo solucione este problema, pero ahora mismo desconozco si PHP ha actualizado sus librerias y el metodo que yo utilizo está desactualizado:

La peticion que realizo es mediante jQuery usando $.get a un php de otro servidor, esperando que me devuelva un json.

Codigo jQuery (js):

$.get ( 'https://example.com/data', { lang : lang }, function ( d ) {}, 'json' );

donde la variable lang es solo un parametro para indicar el idioma:

El código PHP del otro servidor:

<?php
    
    date_default_timezone_set ('Europe/Madrid');
    header ('Content-Type: application/json');
    header ('Content-Disposition: inline; filename="country.json"');
    header ("Cache-Control: no-cache, must-revalidate");
    header ("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
    
    function cors () {
        // Allow from any origin
        if ( isset ($_SERVER('HTTP_ORIGIN')) ) {
            header ( "Access-Control-Allow-Origin: {$_SERVER('HTTP_ORIGIN')}" );
            header ( 'Access-Control-Allow-Credentials: true' );
            header ( 'Access-Control-Max-Age: 86400' );    // cache for 1 day
        }
        // Access-Control headers are received during OPTIONS requests
        if ( $_SERVER('REQUEST_METHOD') == 'OPTIONS' ) {
            if ( isset( $_SERVER('HTTP_ACCESS_CONTROL_REQUEST_METHOD')) )
                header ( "Access-Control-Allow-Methods: GET, POST, OPTIONS" );         
            if ( isset ( $_SERVER('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')) )
                header ( "Access-Control-Allow-Headers: {$_SERVER('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')}" );
            exit(0);
        }
    }
    
    cors ();
    
    if ( !isset ( $_GET ('lang') ) ) { $lang = 'en'; } else { $lang = $_GET ('lang'); }
    
    $dir = scandir ( __DIR__ . '/lang/' );
    $isLang = 0;
    
    foreach ( $dir as $k => $v ) {
        
        if ( $v == $lang . '.php' ) { $isLang++; }
        
    }
    
    if ( !$isLang ) { $lang = 'en'; }
    
    require __DIR__ . '/lang/' . $lang . '.php';
    require __DIR__ . '/lang/info.php';
    
    if ( isset ( $_GET ('country') ) ) {
        
        echo json_encode ( ($_GET ('country') => $_l ($_GET ('country'))) );
        
    } else {
        
        echo json_encode ( $_l );
        
    }
    
?>

Esta formula de CORS ya la usé una vez en el pasado y me funcionó, pero por alguna razón ya no me funciona.
Javascript me devuelve el siguiente error:

jq:1 Access to XMLHttpRequest at ‘https://example.com/data?lang=es’ from origin ‘https://sample.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

jq:2 GET https://example.com/data?lang=es net::ERR_FAILED

Si alguien pudiese explicarme cual es el error o que es lo que esta fallando se lo agradeceria.
Muchas gracias.