Подтвердить что ты не робот

Доступ JavaScript из родительского домена в субдомен?

Я читал, что параметр document.domain = "example.com" позволяет мне получить доступ к родительскому домену из поддомена.

Будет ли то же самое работать наоборот?

Скажем, мой основной сайт работает под http://example.com. Все функции API, которые я хочу получить через AJAX (GET и POST), размещаются на http:// api.example.com.

Могу ли я получить доступ к api.example.com из example.com?

РЕДАКТИРОВАТЬ: снова смотрю document.domain, я не думаю, что это решит проблему. Результат от вызовов api.example.com не нужен HTML, а выводится из PHP script, запущенного на сервере API. Это может быть JSON, обычный текст и т.д., Поэтому нет способа установить для него document.domain (так как это не iframe).

4b9b3361

Ответ 1

Вам нужно установить document.domain на BOTH страницах

Альтернативно устанавливайте заголовки CORS на своем сервере:

http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/

Краткий обзор CORS

Firefox 3.5 и Safari 4 реализуют Спецификация CORS, используя XMLHttpRequest как "контейнер API" который отправляет и получает соответствующие заголовки от имени веб-разработчика, что позволяет межсайтовые запросы. IE8 реализует часть спецификации CORS, используя XDomainRequest как аналогичный API контейнер "для CORS, что позволяет просто кросс-сайт GET и POST-запросы. Примечательно, что эти браузеры отправляют ORIGIN, который обеспечивает схемы (http://или https://) и домен страницы, которая создает межсайтовый запрос. Разработчики серверов должны обеспечить, чтобы они отправляли правые заголовки назад, в частности Заголовок Access-Control-Allow-Origin для рассматриваемый ORIGIN (или" * "для все домены, если ресурс общественность).

Стандарт CORS работает, добавляя новые Заголовки HTTP, которые позволяют серверам обслуживать ресурсы до разрешенного происхождения домены. Браузеры поддерживают эти заголовки и применять ограничения они устанавливают. Кроме того, для HTTP методы запроса, которые могут вызвать побочные эффекты на пользовательские данные (в в частности, для HTTP-методов чем GET, или для использования POST с некоторые типы MIME), спецификация требует, чтобы браузеры" предваряли "запрос, запрос поддерживаемых методов с сервера с помощью HTTP OPTIONS заголовок запроса, а затем, после" утверждение "с сервера, отправка фактический запрос с фактическим Метод HTTP-запроса. Серверы также могут уведомлять клиентов о том, являются ли" учетные данные" (включая файлы cookie и HTTP Данные аутентификации) следует отправить с запросами.