Я считал, что запросы 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
, чтобы он работал (хотя и с некоторыми ограничениями).