Подтвердить что ты не робот

Дифференциация запроса AJAX Call/Browser

Есть ли что-нибудь в заголовке HTTP-запроса, которое позволит мне различать вызов AJAX и прямой запрос браузера от данного клиента? Строки пользовательского агента обычно одинаковы независимо?

4b9b3361

Ответ 1

Если вы используете Prototype, jQuery, Mootools или YUI, вы должны найти заголовок X-Requested-With: XMLHttpRequest, который поможет вам. Должно быть возможно вставить любой заголовок, который вам нравится, с другими библиотеками.

На самом низком уровне, заданном XMLHttpRequest или объекте XMLHTTP, вы можете установить этот заголовок с помощью setRequestHeader следующим образом:

xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

Ответ 2

После некоторых исследований, похоже, наилучшим подходом было бы просто указать пользовательскую строку пользовательского агента при выполнении вызовов AJAX, а затем проверить эту пользовательскую строку пользовательского агента на сервере.