Запросы между разными источниками

Запросы между разными источниками.

До сих пор мы работали со сценариями и файлами данных из одного и того же каталога в одном и том же домене. Но XMLhttpRequest уровня 2 позволяет генерировать запросы между разными источниками, то есть мы можем в пределах одного приложения взаимодействовать с разными серверами.

Для того чтобы обеспечить возможность обращения из одного источника к другому, необходимо настроить авторизацию на сервере. Это делается путем объявления источников, которым разрешен доступ к приложению. Они объявляются в заголовке, отправляемом сервером, на котором находится файл для обработки запроса.

Например, наше приложение расположено в домене www.domain1.com, и мы обращаемся к файлу process. php из нашего примера в домене www. domain2.com. На втором сервере должна быть выполнена необходимая настройка, а именно: домен www.domain1.com должен быть объявлен как допустимый источник для вызова XMLhttpRequest.

Эту информацию можно добавить в конфигурационные файлы сервера или объявить в заголовке сценария. Если мы для примера выберем второй вариант, то понадобится всего лишь добавить заголовок Access-Control-Allow-Origin к сценарию process. php.

Листинг 13.7. Настройка для разрешения запросов из разных источников

<?PHP

Header(‘Access-Control-Allow-Origin: *’);

Print(‘Ваше имя: ‘.$_POST['name'].’<br>’); print(‘Ваша фамилия: ‘.$_POST['lastname']);

?>

В PHP-коде из листинга 13.7 мы добавляем новое значение только в заголовок, возвращаемый сценарием process. php.

Для того чтобы включить этот параметр в каждый заголовок, возвращаемый сервером, нужно внести изменения в конфигурационные файлы http-сервера. Подробнее об этом вы можете узнать, изучив ссылки для этой главы на нашем вебсайте или обратившись к документации по вашему серверу http.

Значение * в заголовке Access-Control-Allow-Origin представляет собой любые источники. Таким образом, к коду из листинга 13.7 можно обращаться из приложений в любых источниках. Однако если мы заменим звездочку (*) конкретным источником, например http://www.domain1.com, то к сценарию смогут обращаться только приложения из домена www.domain1.com.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *