Нет, стандарт HTTP не делает различий между ними. Различие применяется на уровне браузера.
По сути, большая разница в том, что запрос через XMLHttpRequest
(запрос "ajax") подчиняется Одинаковой политике происхождения . Нормальный GET
нет. Это означает, что в обычном случае вы не можете использовать подлинный запрос «ajax» для извлечения ресурса из «источника», отличного от страницы, на которой выполняется ваш скрипт. (Обратите внимание, что это источник страницы, на которой выполняется ваш скрипт, , а не источник файла вашего скрипта, который может быть из любого места.)
Существуют способы, которыми "ajax" может быть использован даже перекрестного происхождения:
- Перекрестный общий доступ к ресурсам (CORS) - это новая (ish) технология, определенная W3C и реализованная некоторыми браузерами. Это позволяет запрашиваемому ресурсу принимать решение о том, разрешить ли его использование запрашивающим документом. Поддерживается последними версиями всех основных браузеров, хотя поддержка IE не работает требует, чтобы вы использовали собственный объект
XDomainRequest
вместо XMLHttpRequest
.
- JSON-P обходит ограничение, фактически не являясь запросом "ajax"; вместо этого это соглашение, которое соблюдают и клиент, и сервер, которое позволяет клиенту включать сценарий с сервера через элемент
script
. (Рассматриваемый скрипт обычно генерируется динамически, и его единственная задача - доставить объект JavaScript в качестве полезной нагрузки, вызвав функцию.)