13

Вопрос по javascript, ajax, xmlhttprequest, http-headers – Различие между вызовом AJAX / запросом браузера

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

2 ответа
33

Если вы используете Prototype

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

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

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

trac.dojotoolkit.org/ticket/5801  в соответствии с вышеизложенным, jQuery, Prototype, YUI, Mootools отправляют заголовок

от Gene T

Хороший звонок, я отредактирую. Хотя я не использую jQuery, я только что проверил это, проверив источник здесьjqueryjs.googlecode.com/svn/trunk/jquery/src/ajax.js

от Paul Dixon

... и Mootools можно проверить здесьgithub.com/mootools/mootools-core/tree/master/Source/Request/...

от Paul Dixon

... и YUI можно проверить здесьdeveloper.yahoo.com/yui/docs/connection.js.html

от Paul Dixon
0

После некоторых исследований кажется

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

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

от John Topley

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

от Vijeet Deliwala

В самом деле. Метод дополнительных параметров запроса более надежен, чем пользовательский заголовок или строка UA, так как вы никогда не знаете, что будут делать прокси. Защитные прокси, скрывающие строку UA, не редкость.

от bobince

Похожие вопросы