При использовании обычного http AJAX: вы говорите о создании междоменного XMLHttpRequest, что запрещено браузерами. Есть предложение W3C, ожидающее , чтобы реализовать его в будущем безопасным способом (частично реализованным IE8, IIRC), но в настоящее время это определенно невозможно.
Однако существуют обходные пути для безопасного выполнения: Подпространство (в котором используются фреймы и document.domain
), метод идентификатора фрагмента (опять-таки в фреймах) и window.name
техника (опять же, iframes!).
Что касается SSL, вы можете купить отдельные сертификаты для домена и субдомена или один сертификат подстановочного знака (* .foo.com), который покрывает их обоих (естественно, сертификат подстановочного знака будет дороже).
Если у вас есть страница HTTPS, которая запрашивает элементы из других доменов, все будет хорошо, пока все будет HTTPS. Это означает, что если вы используете один из обходных путей для iframe, вы должны указать URL-адрес схемы https://
в атрибуте src
iframe.
Последний, менее эффективный обходной путь - иметь скрипт на https://foo.com
, который передает запросы небезопасным http://bar.foo.com
. (Это также решает междоменную проблему XHR, поэтому вы можете игнорировать другие обходные пути.) Конечно, это означает, что вы отправляете запрос XHR на https://foo.com/someurl
, затем он нажимает http://bar.foo.com/someurl
, получает ответ и отправляет его вернемся к браузеру, так что с точки зрения производительности вам гораздо лучше просто перенести серверную функциональность bar.foo.com на foo.com, если у вас есть такая возможность. Но если вы не можете переместить серверный скрипт, прокси - это то, что вам нужно.
РЕДАКТИРОВАТЬ: Я изменил последние 3 графики после некоторого дополнительного тестирования и получения обходного пути iframe AJAX (#fragmentidentifier one) для работы в разных доменах HTTPS. Вы можете делать междоменный SSL AJAX с использованием фреймов, если все равно https
и в фрейме src
используется схема https
. Резюмируя:
- Краткий ответ: нет, настоящий междоменный XHR не разрешен
- Обходной путь с
iframes: более эффективно, требуется 2 SSL
сертификаты (или групповые сертификаты), несколько
сложный
- Обходной путь с прокси:
менее эффективный, можно сделать с 1 или 2
Сертификаты SSL (1 с внутренним запросом к bar.foo.com через http), несколько сложнее