Como descobrir se uma solicitação é ajax?

Eu tento descobrir se uma solicitação para um arquivo PHP é enviada por ajax ou não.

Eu pesquisei no Google e li vários artigos que sugerem o seguinte método:

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {     
    echo 'This is an ajax request!';   
    exit;
}
echo 'This is not an ajax request!';

Mas meu servidor não tem essa variável:Undefined index: HTTP_X_REQUESTED_WITH ...

É assim que eu faço a solicitação do ajax:

$.ajax({
    url: 'http://URL/test.php',
    complete: function(res) {
        console.log(res.responseText);
    }
});

Estou fazendo a ligação a partir de um URL diferente, então configureiheader('Access-Control-Allow-Origin: *');

Eu descobri uma diferença em$_SERVER Apesar:

Solicitação Ajax:$_SERVER[HTTP_ACCEPT] => */*

Nenhuma solicitação do Ajax:$_SERVER[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Então, minha pergunta é: existe uma maneira de eu conseguirHTTP_X_REQUESTED_WITH para dentro$_SERVER? Caso contrário, existe uma maneira adequada de descobrir se a solicitação é AJAX usando o$_SERVER[HTTP_ACCEPT]

questionAnswers(3)

yourAnswerToTheQuestion