ошибка document.domain - PullRequest
       4

ошибка document.domain

0 голосов
/ 07 мая 2011
Permission denied for <http://www.guy.lt> (document.domain=<http://www.guy.lt>) to get property Window.document from <http://www.guy.lt> (document.domain has not been set).

Если это не ошибка, то как объяснить такое поведение? (или хотя бы сообщение об ошибке) И, конечно же, как это исправить?

Другая странная вещь заключается в том, что в:

debug.log('0');
document.domain = 'guy.lt';
debug.log('1');
document.domain = 'wwww.guy.lt';
debug.log('2');

debug.log('2') никогда не срабатывает. Тем не менее, нет ошибки в console. Скрипт просто перестает выполняться.

Ответы [ 2 ]

2 голосов
/ 07 мая 2011

Я не могу понять, что вы делаете неправильно, основываясь на вашем вопросе, но чтобы включить междоменный сценарий, вы должны установить document.domain в той же общей части домена. Также актуально:

  • Если одна сторона использует foo.guy.lt, а другая сторона использует bar.guy.lt, то вы должны установить document.domain = "guy.ly" с обеих сторон.

  • Если вы установите для document.domain значение guy.lt, то фактическим доменом должен быть сам guy.lt или поддомен guy.lt. Вы не можете составить (суб) доменные имена.

  • Вы всегда должны явно указывать значение document.domain, даже если это само значение фактического домена.

  • Вы никогда не сможете изменить document.domain на более конкретный поддомен. Таким образом, если фактический домен www.guy.lt, то вы можете изменить document.domain на guy.lt. Однако после этого изменения вы не сможете изменить его обратно на www.guy.lt.

Примеры:

// Actual domain is "www.foo.com"
document.domain = "foo.com"; // this is valid

// Actual domain is "bar.foo.com"
document.domain = "www.foo.com"; // this is invalid, "bar.foo.com" is not a subdomain of "www.foo.com"

// Actual domain is "blah.bar.foo.com"
document.domain = "bar.foo.com" // Ok
document.domain = "foo.com" // Still ok
document.domain = "bar.foo.com" // Invalid, you can't change it back to a more specific domain.
1 голос
/ 07 мая 2011

Междоменный доступ через document.domain разрешен только в том случае, если на обеих страницах явно установлено document.domain в одно и то же значение. Это необходимая мера безопасности; в противном случае something.company.com может установить document.domain на company.com и считывать данные с company.com. Как таковой, он может сделать это, только если company.com явно включит, установив document.domain в company.com.

...