Я считал, что запросы AJAX с перекрестными субдоменами разрешены, но эта ошибка Chrome, как представляется, указывает на другое

Я знаю, что междоменные запросы запрещены по соображениям безопасности, но у меня создалось впечатление, что только домен верхнего уровня должен соответствовать, что разные поддомены были в порядке. Однако я получаю эту ошибку от Chrome 7:

"Небезопасная попытка JavaScript получить доступ к кадру с URL http://foo.somedomain.com/dir/page.html из фрейма с URL http://bar.somedomain.com/otherdir/otherpage.html. Домены, протоколы и порты должны соответствовать"

Каковы правила для этих типов запросов?

Ответы

Ответ 1

Короче говоря, правила одной и той же политики происхождения:

  • тот же хост
  • тот же порт
  • тот же протокол

В вашем примере вы нарушаете правило хоста, поскольку другой подобъект может указывать на другой хост /IP, чем другой, даже если домен второго уровня одинаков.

Если у вас нет другой возможности, вы можете попробовать использовать JSONP в своем аякс-запросе; это не имеет SOP.

Ссылка

Ответ 2

В любом браузере запрещены запросы на кросс-субдомен. Но есть несколько способов, например CORS, используя iframes, установив document.domain, чтобы он работал (хотя и с некоторыми ограничениями).