Как именно применяется политика того же домена? - PullRequest
13 голосов
/ 30 мая 2009

Допустим, у меня есть домен js.mydomain.com, и он указывает на какой-то IP-адрес, а другой домен requests.mydomain.com, который указывает на другой IP-адрес. Может ли файл .js, загруженный с js.mydomain.com, отправлять запросы Ajax на requests.mydomain.com?

Как современные браузеры применяют политику в одном домене?

Ответы [ 2 ]

11 голосов
/ 30 мая 2009

Короткий ответ на ваш вопрос - нет: для вызовов AJAX вы можете получить доступ только к тому же имени хоста (и порту / схеме), с которого была загружена ваша страница.

Существует несколько обходных путей: один из них заключается в создании URL-адреса в foo.example.com, который действует как обратный прокси-сервер для bar.example.com. Браузеру все равно, где запрос фактически выполняется, если имя хоста совпадает. Если у вас уже есть интерфейсный веб-сервер Apache, это не составит труда.

Другой альтернативой является AJAST , который работает путем вставки тегов скрипта в ваш документ. Я считаю, что так работают API Google.

Хорошее описание той же политики происхождения вы найдете здесь: http://code.google.com/p/browsersec/wiki/Part2

1 голос
/ 30 мая 2009

Это не будет работать, потому что имя хоста другое. Считается, что две страницы имеют одинаковое происхождение, если они имеют одинаковый хост, протокол и порт.

Из Википедии на такая же политика происхождения :

Термин «происхождение» определяется с использованием доменное имя, прикладной уровень протокол и (в большинстве браузеров) TCP порт документа HTML, на котором выполняется скрипт. Два ресурса считаются быть того же происхождения, если и только если все эти значения точно то же самое.

...