Wie finde ich heraus, ob es sich bei einer Anfrage um eine Ajax-Anfrage handelt?

Ich versuche herauszufinden, ob eine Anfrage an eine PHP-Datei von Ajax gesendet wird oder nicht.

Ich habe es gegoogelt und eine ganze Reihe von Artikeln gelesen, die folgende Methode vorschlagen:

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!';

Aber mein Server hat diese Variable nicht:Undefined index: HTTP_X_REQUESTED_WITH ...

So mache ich die Ajax-Anfrage:

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

Ich rufe von einer anderen URL aus an, also habe ich @ eingestellheader('Access-Control-Allow-Origin: *');

Ich habe einen Unterschied in @ entdec$_SERVER obwohl:

Ajax Anfrage:$_SERVER[HTTP_ACCEPT] => */*

Keine Ajax-Anfrage:$_SERVER[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Also meine Frage ist, gibt es eine Möglichkeit für mich, @ zu bekommHTTP_X_REQUESTED_WITHin$_SERVER? Und wenn nicht, gibt es einen geeigneten Weg, um herauszufinden, ob es sich bei der Anfrage um AJAX handelt, indem Sie das @ verwende$_SERVER[HTTP_ACCEPT]

Antworten auf die Frage(3)

Ihre Antwort auf die Frage