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_WITH
in$_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]