Будучи субъектом политики общего происхождения (см. раздел 13.8.2), объект XMLHttpRequest может отправлять HTTP_запросы только тому серверу, откуда был получен документ, использующий этот объект. Это вполне разумное ограни_ чение, но его можно преодолеть, если на стороне сервера разместить сценарий, выполняющий функции прокси, который будет получать содержимое URL_ад_ ресов, расположенных за пределами сайта.
Это ограничение безопасности XMLHttpRequest имеет одно очень важное следствие: объект XMLHttpRequest выполняет HTTP_запросы и не может работать с другими схемами URL_адресации. Например, он не в состоянии работать с такими префик_ сами URL_адреса, как file://. Это значит, что нет никакой возможности прове_
502 Глава 20. Работа с протоколом HTTP

рить работоспособность сценария, использующего объект XMLHttpRequest в локаль_ ной файловой системе. Вам придется загрузить тестовый сценарий на веб_сервер (или запустить веб_сервер на своем локальном компьютере). Чтобы сценарий мог выполнить HTTP_запрос, он должен быть загружен броузером через HTTP.
Примеры и утилиты с объектом XMLHttpRequest
В начале этой главы был представлен пример вспомогательной функции HTTP.ne_ wRequest(), которая позволяет получить объект XMLHttpRequest в любом броузере. Аналогичным образом с помощью других вспомогательных функций можно су_ щественно упростить работу с объектом XMLHttpRequest. В следующих подразде_ лах приводятся примеры таких вспомогательных функций.