Маскированный домен и междоменный JavaScript - PullRequest
0 голосов
/ 25 декабря 2011

Итак, у меня есть веб-сайт fabtab.org, и все, что у него есть, - это iframe, который встраивает в него мой фактический веб-сайт, который находится по адресу fab.org.org/fabtabпровайдер, и я размещаю свой веб-сайт из дома на fab.org.org, поэтому провайдер просто маскирует мой URL и перенаправляет запросы на мой веб-сайт дома)

теперь на fab.org.org/fabtab у меня есть рамкаустановите так, чтобы в верхнем фрейме было название / навигация для веб-сайта, а в нижнем фрейме - содержимое веб-сайта.

Я хотел бы сделать, чтобы в верхнем фрейме была кнопка закрытия, которая вызывает переход URL браузера.к URL-адресу, указанному в URL-адресе нижнего фрейма

Я сделал это в JavaScript следующим образом:

function GotoBodyURL()
{
//debugger;
    var parentDocument = parent.document;
    var bodyDocument = parentDocument.getElementById('content');
    parent.window.location.href = bodyDocument.location;
}

, поэтому этот код запускается при нажатии кнопки закрытия в верхнем фрейме.Это работает, когда к моему веб-сайту обращаются с fab.org.org/fabtab, но когда он запускается с fabtab.org, я получаю междоменные ошибки javascript.То, что я пытался сделать, безуспешно, это установить document.domain = "fab.org.org"

Это ошибка Chrome дает мне:

Небезопасный JavaScriptпопытаться получить доступ к фрейму с URL http://fabtab.org/ из фрейма с URL http://fab.org.org/fabtab/games/head/show_close=False. Домены, протоколы и порты должны совпадать.

, если мой верхний фрейм вызывает parent.document, не следует либыть документом с моим набором фреймов в том же домене, поэтому не должно быть междоменного javascript?ИЛИ действительно ли проблема, которую видит браузер, заключается в том, что мой веб-сайт пытается получить доступ к fab.org.org внутри fabtab.org и просто не позволяет это сделать?Если это так, то поможет ли изменение iframe на fabtab.org, чтобы в javascript для домена было установлено значение fab.org.org?

1 Ответ

0 голосов
/ 27 декабря 2011

Я решил проблему, используя запись CNAME на своем веб-сайте вместо переадресации с маскированием

...