Я пытаюсь выяснить, отправлен ли запрос в файл PHP с помощью ajax или нет.Как узнать, является ли запрос ajax-запросом?
Я гугл и прочитал целую кучу статей, которые предлагают следующий метод:
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!';
Но мой сервер не имеет это переменный: Undefined index: HTTP_X_REQUESTED_WITH ...
Вот как я сделать запрос AJAX :
$.ajax({
url: 'http://URL/test.php',
complete: function(res) {
console.log(res.responseText);
}
});
Я делаю этот вызов из другого URL, так что я установил header('Access-Control-Allow-Origin: *');
я обнаружил одно различие в $_SERVER
хотя:
Ajax запрос: $_SERVER[HTTP_ACCEPT] => */*
Нет запроса Ajax: $_SERVER[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Так что мой вопрос, есть ли способ для меня, чтобы HTTP_X_REQUESTED_WITH
в $_SERVER
? И если нет, есть ли способ узнать, является ли запрос AJAX с помощью $_SERVER[HTTP_ACCEPT]
в какой версии вы используете jquery? он должен быть 1,5 или выше –
новейшая версия 1.11 –