Есть ли надежный способ узнать, находится ли запрос в контексте Ajax в PHP? - PullRequest
3 голосов
/ 12 февраля 2010

Мне нужно по-разному разобраться с этими двумя случаями, есть ли хорошее решение?

Ответы [ 2 ]

6 голосов
/ 12 февраля 2010
if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { /* ajax request */ }
3 голосов
/ 12 февраля 2010

Я могу придумать 2 способа сделать это:

  • На стороне AJAX вы можете установить собственный заголовок HTTP с помощью XMLHttpRequest.setRequestHeader(), а затем проверить наличие этого заголовка на стороне PHP с помощью getallheaders() чтобы указать, что запрос был сделан клиентом AJAX. Если ваш php-скрипт не находит пользовательский заголовок, вы можете считать его не-AJAX-запросом.

  • Когда вы создаете запрос в своем коде, вы можете просто прикрепить переменную строки запроса, чтобы указать природу запроса. например. http://example.com/process?ajax=true для запроса AJAX или http://example.com/process?ajax=false для запроса без AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...