2010-05-24 3 views
2

феллинг this обсуждения и this ссылки, я узнал, что, добавляя document.domain = 'mydomain.com'; в файл инициализации TinyMCE и tiny_mce_popup.js я могу решить эту проблему перекрестного домена.Crossdomain TinyMCE

Я не тестировал его на надлежащем производственном сервере, но в моей среде dev базовый домен - localhost: 8000, а мои статические файлы (также tinyMCE) находятся на localhost: 88.

Добавление document.domain = 'localhost:8000'; или document.domain = 'localhost:88'; не решает проблему, как я получаю следующее сообщение об ошибке:

Uncaught Error: SECURITY_ERR: DOM Exception 18 

Любая помощь?

Благодаря

ответ

5

document.domain установка работает только если вы используете поддомены, не совершенно разные домены (разные порты считаются разными доменами). Таким образом, вы можете иметь server1.mydomain.com и server2.mydomain.com, и в этом случае вы устанавливаете домен на mydomain.com как на главной странице, так и на tiny_mce_popup.js. Однако вы не можете использовать mydomain.com и otherdomain.com. Для получения дополнительной информации об этих ограничениях см. https://developer.mozilla.org/en/DOM/document.domain или http://msdn.microsoft.com/en-us/library/cc196989(VS.85).aspx

Я считаю, что планируется настроить способ работы TinyMCE таким образом, чтобы он мог иметь версию CDN, которая может использоваться из любого домена, но в настоящее время она не существует.

С уважением,

Адриан Sutton
http://tinymce.ephox.com

+1

как насчет HTTP и HTTPS? например, базовый домен - http://domain.com и tinyMCE, находящийся на https://sub.domain.com? – yek

+0

Я бы ожидал, что это тоже не удастся. Изменение с HTTP на HTTPS также изменяет порт, так что у него возникает та же проблема, что и исходная проблема. Даже если это был какой-то один и тот же порт, изменение протокола также нарушило бы его - это * только * субдомены, которые можно использовать, никаких других изменений вообще. – ajsutton