Ситуации, когда необходимо подгрузить данные из другого домена (отличного от того, на котором находится приложение) встречаются весьма редко. Однако предположим, что наше приложение находиться по адресу http://app.mydomain.com, данные по адресу http://data.mydomain.com, а скрипт для загрузки данных называется "data.php".
При попытке загрузить данные стандартным путём произойдёт ошибка, т.к. все браузеры блокирует междоменные операции из-за соображений безопасности, даже если вы будете использовать другой порт.
Библиотека Webix позволяет обойти подобные блокировки. Для создания запросов можно использовать протокол CORS. - Загрузка JSONP только для GET запросов.
Вы не сможете загружать данные с помощью метода load, но сможете создавать запросы и парсить возвращаемые данные в коллбэк.
CORS требует дополнительную конфигурацию на сервере. Сервер должен разрешать любой программе с домена приложения запрашивать и получать данные с этого сервера.
Когда вы создаёте AJAX запрос с помощью Webix AJAX:
webix.ajax("http://data.mydomain.com/data.php", function(text, data){
table.parse(data.json());
});
браузер отправляет следующий заголовок с HTTP запросом:
Origin: http://app.mydomain.com
Вам необходимо создать ответ с сервера с данными со специальным заголовком, который также "разрешит" получать данные.
Сервер приложения разрешает получать данные от сервера с данными:
Access-Control-Allow-Origin: http://app.mydomain.com
Это можно сделать тремя способами:
Детальную информацию о CORS читайте в статье на Википедии.
Преимущества
CORS - стандартный и безопасный вариант, который можно использовать с любыми данными (структурированными или нет). Также протокол поддерживает все типы запросов – GET, POST, PUT, DELETE, и т.д.
Недостатки
IE8 и IE9 не поддерживают протокол CORS.
Наверх