![]() |
Загрузка Xml с разных доменов
Есть мувик с XML объектом.
Flash лежит на http://322222.dp.ua/topX/topX.swf XML во flash грузится с этого же адреса http://322222.dp.ua/topX/top10.xml Проблема в следующем: юзер может попасть на сайт, если он в броузере наберет http://322222.dp.ua/ либо http://www. 322222.dp.ua/ Так вот, когда он набирает http://www. 322222.dp.ua/, xml перестает грузиться во flash. Где-то читал, что xml должен находиться в томе же домене, что и flash-мувик. Но тогда не понятно, почему, когда я запускаю flash на своей машине, то он беспрепятственно лезет на указанный адрес в интернет и загружает этот xml. |
СТОП! Все не так :)
Мувик можно посмотреть по: http://www.322222.dp.ua/show.php?txt=stat&m=1 Внутри флеша соответсвенно прописано xml.load("http://www.322222.dp.ua/......") Все работает. Если сайт запустить со ссылки http://322222.dp.ua/show.php?txt=stat&m=1 xml перестает грузиться. Мне стоит писать на php скрипт, который будет определять url, набранный в броузере и передавать его во флэш? Или есть более грамотные пути решения этой проблемы. Большое спасибо. |
Цитата:
|
Цитата:
Вопрос вообще-то про универсальность загрузки: как сделать так, чтобы хмл загружался в любом из этих двух случаев. |
выложи в руте сайта файл crossdomain.xml
такого содержания: <?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="322222.dp.ua" /> <allow-access-from domain="www.322222.dp.ua" /> </cross-domain-policy> Подробности в хелпе флэша "About allowing cross-domain data loading" |
А это где именно. Что-то поискал по хелпу флэша - не нашел. У меня мх2004. Или мне надо хелп обновить?
|
У меня тоже MX2004
Help -> ActionScript Reference Guide -> Working with External Data -> Flash Player security features |
Большое спасибо. Кажется что-то нашел. Буду разбираться
|
GL & HF
|
Что-то наверное не так делаю. На сайте
consult.ric.ua выложил хмл <?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="www.322222.dp.ua" /> <allow-access-from domain="322222.dp.ua" /> <allow-access-from domain="consult.ric.ua" /> </cross-domain-policy> На сайте www.322222.dp.ua лежит флэш с xml.load("http://consult.ric.ua/topX/top10.xml"); ... не грузится :mad: :( |
crossdomain.xml swf-кой подгружается? Можно посмотреть в log-окне Proxomitro'на, например
|
Я конечно прошу прощение, но что есть Proxomitron?
И еще. В самой swf'ке нужно как-то указывать этот crossdomain.xml? |
http://proxomitron.da.ru/ это мощный фильтр вэб-контента и http-заголовков. У него присутствует фича - просмотр HTTP-заголовков принимаемых и отправляемых, а также POST-данных. С помощью его лог-окна можно посмотреть весь "диалог" между браузером(swf-проигрывателем) и сервером.
crossdomen.xml не надо нигде прописывать. Флэшка (ActiveX или plugin браузера) сама его пытается найти в руте сервера, при условии, что сама флэшка была загружена с одного домена, а внутри нее есть вызовы на другие домены. В этом случае, прежде чем запросить и подгрузить в себя внешний (твой) xml, swf и т.д. сначала флэшка ищет и, если нахотит то подгружает и анализирует crossdomen.xml. А затем, если разрешено в crossdomen.xml, подгружает запрашиваемый контент. Надеюсь я ясно высказываюсь. |
Зачем так сложно?
Сделай просто путь относительным, и грузи без проблем Код:
xml.load("top10.xml"); |
kpyTa!
|
2 Еле: Ты так говоришь, потому что пробовал или потому что тебе кажется? :) У меня ничего не получилось. К тому же все равно остается вопрос о загрузке хмл с другого домена (для меня остается :) )
|
пробовал конечно
не однократно я вообще например не знаю на каких сайтах мои ролики работают... каждый может скачать и у себя на сайте выложить. так что в моем случае вообще прямые пути не катят Теряюсь в загадках почему это может не работать скорее всего путь относительный неправильный посмотри чему равно _root._url это должна быть таже директория как и top10.xml |
Да с _root._url вроде как все ок - показывает тот адрес, на котором лежит swf. Может я коряво объяснил? :rolleyes:
Попробуем еще раз :) Я хочу вот что. Сам мувик лежит по адресу www.322222.dp.ua/topX/topX.swf . Это раз. В мувике есть два объекта типа LoadVars и XML. lv = new LoadVars(); lv.load("http://consult.ric.ua/topX/topX.php"); Запускается на выполняется скрипт, который проверяет на правильность, существование и т.п. файла top10.xml и, если не все в порядке, генерит xml-файл заново. Как только скрипт выполнен xml = new XML(); xml.load("http://consult.ric.ua/topX/top10.xml"); В корне consult.ric.ua выложил файл crossdomain.xml: <?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="www.322222.dp.ua" /> <allow-access-from domain="322222.dp.ua" /> <allow-access-from domain="consult.ric.ua" /> </cross-domain-policy> . Насколько я понял из всего вышесказанного, а также из документации, мой мувик, который лежит на www.322222.dp.ua автоматом лезет в корень consult.ric.ua и проверяет файл crossdomain.xml. Если он себя там находит, то должен свободно пользоваться ресурсами этого домена. Или я все напутал? |
Можно ли как-то во флэше проверить грузиться ли в него crossdomain.xml?
|
А в кэше браузера есть этот файл?
|
Есть
|
Ну не знаю :(
Я уже и монитор протер. Все равно не видит этот долбанный crossdomain.xml |
Я говорил про случай www.322222.dp.ua и 322222.dp.ua и когда xml присутствует на этих же доменах
с кросдоменами я не связывался. но могу предположить что crossdomain.xml должен лежать на домене где выложен swf а не на домене с XML попробуй таки положить crossdomain.xml в корень 322222.dp.ua |
Не хочу показаться упрямым, но все-таки, если указывать top10.xml, а не 322222.dp.ua/topX/top10.xml - ну не грузится оно.
322222 и www.322222 - разные домены, поэтому тут нужно использовать crossdomain. По поводу того, где выкладывать этот crossdomain, так в хелпе четко написано: Цитата:
|
Когда заходишь на http://322222.dp.ua/topX/topX.swf, то crossdomain.xml ищеться на http://www.322222.dp.ua/.
Он там лежит? |
по поводу относительных путей, сравни:
http://st4.mdo.ru/foto/test.swf http://mail.mdo.ru/foto/test.swf исходник http://st4.mdo.ru/foto/test.fla |
2 Inils: еще раз. Флэш лежит на 322222. Данные на consult.ric.ua.
2 Елё: fla не грузится :( |
Вложений: 1
как это не грузится?
не открывется? сохранил в MX |
crossdomain.xml должен лежать в том домене от куда ты во флеш грузишь top10.xml
У нем перечислены домены, которым можно отправлять твой xml. Пример: Есть: domain1.com и domain2.com На domain1.com есть sample.xml и флеш flash.swf (в котором стоит абсолютный путь к xml http://domain1.com/sample.xml) На domain2.com есть только тот же самый flash.swf Для того что бы ты мог с http://domain2.com/flash.swf мог загрузить http://domain1.com/sample.xml на domain1 нужно положить croosdomain.xml <?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="domain1.com" /> <allow-access-from domain="domain2.com" /> </cross-domain-policy> Все проверено и работает |
2 Еле: спасибо. Играю в игру "Найди 10 отличий и пойми почему не работает" :)
2 iNils: чем все, что ты сказал, отличается от моего случая? ;) Проводими анализ: Цитата:
http://consult.ric.ua/topX/topX.php Цитата:
crossdomain лежит на http://consult.ric.ua/crossdomain.xml Содержание: <cross-domain-policy> <allow-access-from domain="www.322222.dp.ua" /> <allow-access-from domain="322222.dp.ua" /> <allow-access-from domain="consult.ric.ua" /> </cross-domain-policy> Хм.... Не наю. Уже все, что можно, выкладывал в рут. Думал, может быть проблемы во вложенных каталогах /topX/. И просто пытался загрузить xml без предварительного запуска скрипта на php - НИ-ЧЕ-ГО. НО-ЛЬ. :( Билин. |
В том что мой случай работает.
Попробуй для начала все сделать в корне домена, а не внутри папок. |
Привожу лог сниффера
Код:
308: Client to Server (375 bytes) |
Очень похоже на то, что условие:
Код:
if (!lv.loaded) { |
|
ХМ! Еще бы она не работала. Внутри этого мувика все пути
www.3222222.dp.ua/topX/... и никаких кроссдоменов. Короче, частное решение. Приходится 2 раза на 2 сайтах исполнять один и тот же скрипт, формирующий один и тот же xml, но кладущий его каждый в свою папку. Вот. В общем буду мучать зверька дальше. Всем большое спасибо за советы. |
А вот еще лог, гружу с http://322222.dp.ua/topX/topX.swf?rnd=12333:
Код:
404: Client connected; 127.0.0.1:4132 |
Об наличии crossdomain.xml на http://www.322222.dp.ua/ я уже спрашивал )))
|
А не мог бы ты еще раз попробовать. Он там уже есть :D
Просто разочаровавшись, я его прибил. |
Кстати, вопрос по ходу дела. Если просто грузить любой хмл
типа <?xml version="1.0"?> <!-- http://consult.ric.ua/crossdomain.xml --> <cross-domain-policy> <allow-access-from domain="www.322222.dp.ua" /> <allow-access-from domain="322222.dp.ua" /> <allow-access-from domain="consult.ric.ua" /> </cross-domain-policy> то грузится ничего не будет Если грузить так <cross-domain-policy> <allow-access-from domain="www.322222.dp.ua" /> <allow-access-from domain="322222.dp.ua" /> <allow-access-from domain="consult.ric.ua" /> </cross-domain-policy> Тогда грузится. С таким не сталкивались? |
Хочешь сказать что комментарий делает xml не работоспособным?
|
| Часовой пояс GMT +4, время: 05:13. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.