Просмотр полной версии : Oбращение по полному url
И снова приветствую! Оперировал сегодня посылом POST запросов флешки к серверу, по урезанному пути, например "/file/filename.php" все происходит замечательно, но стоит указать путь "http://www.site.ru/file/filename.php", как запросы перестают переходить. Подозреваю, что нужно разрешение какое-то установить, но с какой стороны и где копать, вот это не представляю. Флешка то находится в зоне того же домена...
<cross-domain-policy>
<allow-access-from domain="MySite.ru" to-ports="80"/>
<allow-access-from domain="*.MySite.ru" to-ports="80"/>
</cross-domain-policy>
Как следует из описания, нужно этот текст поместить в корневой папке сайта в файле crossdomain.xml.
Это разрешение любой флешке, но только если она обращается с указанного домена, посылать запросы к серверной части? Я правильно понял?
GBee, спасибо за наводку, все работает
Ну если не считать того, что браузер начинает шарить по сайту в поисках каких-то элексиров бессмертия. В общем лажа какая-то. Попробовал то-же самое с GET запросом и обнаружил... Хотя сначала объясню ситуацию.
Есть сайт xxx.ru , я туда положил crossdomain.xml, файл php для общения с swf и все ок. Дернул меня черт проверить, а что если я положу эту swf на сайт yyy.ru (по идее должен вернутся IOErrorEvent.IO_ERROR).
Вопрос, зачем запрос отправляется на директории сайта yyy.ru в поисках нужного файла php? 31910
Ок, подложил ему на сайте yyy.ru этот файл, он его нашел и отправил запрос ему, хотя направлен был по адресу xxx.ru
Вопрос, зачем запрос отправляется на директории сайта yyy.ru в поисках нужного файла php?
Так флешка наверно относительный путь дергает или я не понял.
Security.allowDomain('*')
попробуйте в флешке
Не хочу мистифицировать, но путь полный, а myloader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError) не возвращает ничего, да и crossdomain.xml на yyy сайте не лежит. Поковыряю еще. В последнее время заинтересовался вопросом безопастности подгружаемого контента во флеш и якобы ограничивая зону действия запросов можно во флеш отследить, что запрос не дошел до цели. Странно, что IOErrorEvent не возвратил ничего.
Добавлено через 19 минут
Security.allowDomain('*')
попробуйте в флешке
Попробовал, но реакции никакой, вроде бы запрос направляется, ошибки нет. Мне то надо все наоборот - посылаю запрос к серверу и если флешка на этом же домене все работает, во всех остальных случаях жду ошибки запроса. Как то так.
Относительные запросы из флешь идут от расположения страницы, в которую внедрён флешь.
Не важно, куда вы физически положите swf, относительный запрос будет идти от того места, где расположена страница, содержащая этот флешь.
elder_Nosferatu
21.12.2015, 04:52
IOErrorEvent.IO_ERROR не единственная ошибка, а тем более когда вопрос стоит в безопасности.
caseyryan
21.12.2015, 07:54
Дернул меня черт проверить, а что если я положу эту swf на сайт yyy.ru (по идее должен вернутся IOErrorEvent.IO_ERROR).
По какой такой идее? IO_ERROR = Input / Output Error или по-русски ошибка ввода / вывода. Она вылетает если по указанному пути нет файла, либо доступ к нему, по каким-то причинам ограничен. А у тебя должна быть SeurityError.
И вообще, ты не с того края подходишь к решению задачи. Во-первых не надо указывать какие-то домены в crossdomain.xml, укажи там просто * и для портов тоже. Пусть будут разрешены абсолютно любые домены. Твоя задача выяснить в безопасноти ли дело или в неверных путях. Дальше почисти кэш браузера. Кроссдоменники имеют свойство кэшироваться как и все остальное.
Третье. Попробуй обращаться к этим адресам минуя флешку, напрямую из адресной строки браузера. Что выдаст браузер?
Мистики в этом деле не бывает, всегда в итоге всплывает человеческий фактор.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.