Комментарии 22
Оно бы да, но в 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, но браузер его в себя не пропускает.
Вот если бы в статье осветили именно эти подводные течения — почему отключили, что тестируют, когда включат? — то ценность статьи была бы намного выше.
Из фактов про FF ещё скажу, что Greasemonkey каким-то образом раскрывает кроссдоменность, и у неё GM_xttprequest() кроссдоменно работает. Значит, в браузере есть протокол? как его включить? Почему тогда не реализовали его в том полагине, который работает до версии 3.5? Самое интересное, что при запросе HTTPAnalyzer виден приход ответа с чужого домена со всей информацией по методу с Access-Control-Allow-Origin, но браузер его в себя не пропускает.
Ну, они написали в Release Notes, что спецификация часто меняется, и вместо того, чтобы каждый раз менять код, они лучше подождут более стабильной спецификации.
В 3.6.13 вчера тестировал, все прекрасно работало.
Вот, наверное, что работало и работает (FF, Хром, Safari; Опера и IE8 (Win7x64) — не): arunranga.com/examples/access-control/simpleXSInvocation.html (ссылка со страницы hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ под заголовком "“Simple” Requests using GET or POST". Для Post демо: arunranga.com/examples/access-control/preflightInvocation.html.
С особенностью: “Simple” requests don’t set custom headers, and the request body only uses plain text (namely, the text/plain Content-Type).
CORS, скорее всего, НЕ будет работать, именно он работал до 3.5, но проверить ещё раз сейчас не могу.
Так же работает в FF описанный ниже в той же статье метод с request.withCredentials = «true»; для передачи куков.
В общем, много интересного в современном состоянии XDR.
С особенностью: “Simple” requests don’t set custom headers, and the request body only uses plain text (namely, the text/plain Content-Type).
CORS, скорее всего, НЕ будет работать, именно он работал до 3.5, но проверить ещё раз сейчас не могу.
Так же работает в FF описанный ниже в той же статье метод с request.withCredentials = «true»; для передачи куков.
В общем, много интересного в современном состоянии XDR.
У Резига там просто пример с устаревшей версией протокола, поэтому и не работает. Вместо «Access-Control-Allow-Origin» там используется «Access-Control: allow». Запрет на кастомные хедеры — это логично, они хотят избежать потенциальных проблем с безопасностью, и поэтому не разрешают XDR отсылать ничего такого, что нельзя отослать с помощью обычной формы.
А опера не рассматривалась или не поддерживает?
Обычно использую связку
Аджакс на внутренний файл, а он уже отправляет через CURL то что мне нужно.
Конечно внутренний файл защищается.
Аджакс на внутренний файл, а он уже отправляет через CURL то что мне нужно.
Конечно внутренний файл защищается.
Вспомнилось. Помоему отличное решение.
А CORS пока на мой взгляд слишком не безопасный.
достаточно внедрить скрипт куда-либо который с этого домена сделает запрос на нужный хакеру домен а тот уже зная что пришло сделает просто Access-Control-Allow-Origin такойже какой к нему пришёл Origin.
По-моему совершенно не безопасно.
Я конечно понимаю что с таким же успехом можно использовать jsonp для таких целей, но с добавлением CORS руки развяжут разработчикам сайтов и разработчикам троянов.
А CORS пока на мой взгляд слишком не безопасный.
достаточно внедрить скрипт куда-либо который с этого домена сделает запрос на нужный хакеру домен а тот уже зная что пришло сделает просто Access-Control-Allow-Origin такойже какой к нему пришёл Origin.
По-моему совершенно не безопасно.
Я конечно понимаю что с таким же успехом можно использовать jsonp для таких целей, но с добавлением CORS руки развяжут разработчикам сайтов и разработчикам троянов.
Если трактовать AJAX широко, не только как XMLHTTPRequest, вполне себе без ифреймов решается легко и элегантно через dom —
var objScript = document.createElement('script');
objScript.src =… // target url goes here
var objScript = document.createElement('script');
objScript.src =… // target url goes here
НЛО прилетело и опубликовало эту надпись здесь
Использую plugins.jquery.com/plugin-tags/cross-domain и горя не знаю
НЛО прилетело и опубликовало эту надпись здесь
На самом деле я чуть чуть ошибся, хотел дать линк на xdomain.js, но ошибся.
Поэтому дам ещё вот таких ссылок:
www.internet-technologies.ru/articles/article_1529.html
kobzarev.com/programming/cross-domain-ajax.html
bashtannik.wordpress.com/2010/03/11/jquery-ajax-crossdomain/
habrahabr.ru/blogs/ajax/67961/
Поэтому дам ещё вот таких ссылок:
www.internet-technologies.ru/articles/article_1529.html
kobzarev.com/programming/cross-domain-ajax.html
bashtannik.wordpress.com/2010/03/11/jquery-ajax-crossdomain/
habrahabr.ru/blogs/ajax/67961/
YQL
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Кроссдоменный AJAX