Различие между вызовом AJAX / запросом браузера - PullRequest
13 голосов
/ 19 октября 2008

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

Ответы [ 2 ]

33 голосов
/ 19 октября 2008

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

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

xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
0 голосов
/ 19 октября 2008

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

...