Есть ли что-нибудь в заголовке HTTP-запроса, которое позволит мне различать вызов AJAX и прямой запрос браузера от данного клиента? Строки пользовательского агента обычно одинаковы независимо?
Дифференциация запроса AJAX Call/Browser
Ответ 1
Если вы используете Prototype, jQuery, Mootools или YUI, вы должны найти заголовок X-Requested-With: XMLHttpRequest, который поможет вам. Должно быть возможно вставить любой заголовок, который вам нравится, с другими библиотеками.
На самом низком уровне, заданном XMLHttpRequest или объекте XMLHTTP, вы можете установить этот заголовок с помощью setRequestHeader следующим образом:
xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
Ответ 2
После некоторых исследований, похоже, наилучшим подходом было бы просто указать пользовательскую строку пользовательского агента при выполнении вызовов AJAX, а затем проверить эту пользовательскую строку пользовательского агента на сервере.