Можно ли получить статический актив с помощью AJAX-запроса? - PullRequest
0 голосов
/ 05 июля 2011

Возможно, у меня нет поискового фита, но я не могу найти информацию о получении статических ресурсов, таких как JSON или XML-файл, с запросом XHR / AJAX.Я думаю, что это, вероятно, зависит от веб-сервера, но давайте предположим, Apache httpd.Это возможно?Если нет, то почему?

Ответы [ 2 ]

1 голос
/ 05 июля 2011

Да.XHR - это просто средство отправки HTTP-запроса на сервер.Сервер отвечает на него обычным способом, никакой специальной настройки сервера не требуется.

Браузеры накладывают некоторые ограничения на XHR.В частности, по умолчанию они позволяют использовать XHR только для запроса ресурса, который имеет то же origin , что и документ, в который загружен скрипт, выполняющий XHR;это называется Одинаковая политика происхождения .Поэтому, если мой скрипт загружен документом на http://example.com, я не могу использовать XHR для запроса http://foo.com/index.html.

Существует новый (ish) стандарт, называемый Cross-Origin Resource Sharing это позволяет браузерам и серверам работать вместе, чтобы делать исключения из этой политики.CORS поддерживается в современных браузерах, хотя, к сожалению, в IE он поддерживается только через объект XDomainRequest (и только в IE8 и более поздних версиях), а не обычный объект XMLHttpRequest.(Firefox и Chrome поддерживают его в XMLHttpRequest, и, надеюсь, когда-нибудь Microsoft тоже увидит свет.)

0 голосов
/ 05 июля 2011

Статические ресурсы ничем не отличаются в мире HTTP.Когда вы делаете вызов AJAX, вы используете URL с указанным расширением (например, png или pdf).Веб-сервер видит это расширение и обслуживает его, независимо от того, кто, как, сделал запрос (конечно, если вы не вмешиваетесь в это).Давайте предположим, что вы используете jQuery ajax.Ответ будет доступен вам в качестве параметра обратного вызова успеха:

$.ajax({
    // parameters here
    success: function (response) {
        // Here you have access to response.
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...