|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2011
Сообщений: 10
|
ошибка изолированной среды при загрузке URLloader
в коде вызывается:
Security.loadPolicyFile("http://" + host+ ":8888"); //host - ip компьютера, который находится в локалке var r:URLRequest = new URLRequest(); r.url = "http://" + host + "/socket.io/1/"; var ul:URLLoader = new URLLoader(r); -Подключение к http://192.168.1.9:8001/socket.io/1/ прервано – нет разрешения от Main.swf -Нарушение изолированной среды: .../Main.swf не может загрузить данные из http://192.168.1.9:8001/socket.io/1/ На 8001 порту host'a висит socket_server, который при запросе http://192.168.1.9:8001/socket.io/1/ отдает flashsocket'aм параметры для работы. Но flash блокирует этот запрос. На 8888 порту host'a висит policy_server который отдает crossdomain.xml следующего содержания: <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*" to-ports="*" /> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy> Последний раз редактировалось freemtrg; 31.10.2011 в 12:05. Причина: структурирование кода |
|
|||||
.
|
А откуда загружается флешка? Очень похоже, что loadPolicyFile просто игнорируется.
Цитата:
|
|
|||||
Регистрация: Jun 2011
Сообщений: 10
|
флешку запускаю со своего компьютера, который имеет доступ к локальной сети (в частности к host'у). В браузере crossdomain.xml и http://192.168.1.9:8001/socket.io/1/ спокойно открываются. Причем у меня тоже такое же ощущение, что он просто игнорирует Security.loadPolicyFile,
но я не пойму, чем это может быть вызвано. Кстати забыл указать, в параметрах публикации - безопасность при локальном воспроизведении установлено доступ только к сети. Последний раз редактировалось freemtrg; 31.10.2011 в 13:21. |
|
|||||
.
|
Дык у вас полиси загружается с 8888, а urlloader лезет по 8001. Это разные домены безопасности. Это так же, как брать полиси из абсолютно левого адреса. Действовать оно будет только на http(s)://host:port.
|
|
|||||
Регистрация: Jun 2011
Сообщений: 10
|
Хм, я думал что если перед операцией загрузить полиси в котором разрешен доступ к любым портам, то он потом без проблем будет на них стучаться...
Недоразобрался я в документации, будем разбираться. Благодарю за ответ! Тему пока не закрываю, возможно будут еще проблемы (или пригодится еще кому-нибудь ). Последний раз редактировалось freemtrg; 31.10.2011 в 17:57. |
|
|||||
Регистрация: Jun 2011
Сообщений: 10
|
Я внес следующие изменения в серверную часть:
на 843 порту так же висит полиси сервер для соккетов и отдает: <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" to-ports="*"/> </cross-domain-policy> На 8001 порту (в корне т.е. на http://192.168.1.9:8001/crossdomain.xml) отдается такой полиси: <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> и даже более того, по запросу 192.168.1.9:8001/socket.io/crossdomain.xml отдается такой же xml как и в корне на 8001 порту. НО, при попытке подключения выдается "Игнорирование файла политики на http://192.168.1.9:8001/crossdomain.xml из-за отсутствия типа содержимого." И дальнейшее соединение (запрос по http://192.168.1.9:8001/socket.io/xhr-polling/) закрывается. Что я сделал сейчас неправильно? Добавлено через 22 часа 33 минуты Итак, проблема оказалась до банального элементарной: cервер при отдаче полиси не добавлял в конце символ окончания строки '\0' |
Часовой пояс GMT +4, время: 16:15. |
|
« Предыдущая тема | Следующая тема » |
Теги |
crossdomain , flash , sockets , urlloader |
Опции темы | |
Опции просмотра | |
|
|