Оно бы да, но в FF3.6 это почему-то отключили. В 3.5 работало. Статья ejohn.org/blog/cross-site-xmlhttprequest/, в ней пример по ссылке «Demo». Он не работает не потому, что там что-то отключено, хотя может быть и так. Я проверял на своих серверах в FF3.6 — не работает. До FF3.5 существовал даже плагин FF, реализующий этот механизм.
Вот если бы в статье осветили именно эти подводные течения — почему отключили, что тестируют, когда включат? — то ценность статьи была бы намного выше.
Из фактов про FF ещё скажу, что Greasemonkey каким-то образом раскрывает кроссдоменность, и у неё GM_xttprequest() кроссдоменно работает. Значит, в браузере есть протокол? как его включить? Почему тогда не реализовали его в том полагине, который работает до версии 3.5? Самое интересное, что при запросе HTTPAnalyzer виден приход ответа с чужого домена со всей информацией по методу с Access-Control-Allow-Origin, но браузер его в себя не пропускает.
Ну, они написали в Release Notes, что спецификация часто меняется, и вместо того, чтобы каждый раз менять код, они лучше подождут более стабильной спецификации.
У Резига там просто пример с устаревшей версией протокола, поэтому и не работает. Вместо «Access-Control-Allow-Origin» там используется «Access-Control: allow». Запрет на кастомные хедеры — это логично, они хотят избежать потенциальных проблем с безопасностью, и поэтому не разрешают XDR отсылать ничего такого, что нельзя отослать с помощью обычной формы.
Вспомнилось. Помоему отличное решение.
А CORS пока на мой взгляд слишком не безопасный.
достаточно внедрить скрипт куда-либо который с этого домена сделает запрос на нужный хакеру домен а тот уже зная что пришло сделает просто Access-Control-Allow-Origin такойже какой к нему пришёл Origin.
По-моему совершенно не безопасно.
Я конечно понимаю что с таким же успехом можно использовать jsonp для таких целей, но с добавлением CORS руки развяжут разработчикам сайтов и разработчикам троянов.
Если трактовать AJAX широко, не только как XMLHTTPRequest, вполне себе без ифреймов решается легко и элегантно через dom —
var objScript = document.createElement('script');
objScript.src =… // target url goes here
Кроссдоменный AJAX