Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ещё раз о crossdomain.xml (http://www.flasher.ru/forum/showthread.php?t=129615)

micromacro 06.09.2009 01:55

Ещё раз о crossdomain.xml
 
Это опять я! :bye:

Можно к вам обратится с просьбой подсказать что я делаю не так. А то бьюсь уже с этой проблемой третий день. :umnik2:

У пользователя на компьютере есть swf-ка которая конектится к серверу на которой развёрнут blazeds. При попытке подключится к серверу лезет вот такой паразит:

Код:

Received fault: [RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Security.Error error Error #2048: Security sandbox violation: file:///C|/MY/WEB%2DINF/flex/MyApp.swf cannot load data from http://71.43.83.55:7001/blazeds_unziped/messagebroker/amf. url: 'http://71.43.83.55:7001/blazeds_unziped/messagebroker/amf'"]
Если я кладу MyApp.swf на сервер и пользователь смотрит его через броузер. То всё нормально.

crossdomain положил везде где только можно. И там где сам ролик лежит (рутовая диреутория) и в ../WEB-INF/flex/classes/remoting всё равно не фурычит :(

В чём может быть засада? :bb:

Obi 06.09.2009 11:39

В кроссдомене явно указаны порты на которые можно соеденяться?

micromacro 06.09.2009 16:05

Да. Вот так выглядит мой

Цитата:

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
Как бы ине локализовать проблему и определить какие элементы работают а какие нет. У меня такое очучние что он вооб crossdomain.xml не читает :(

MrPoma 06.09.2009 17:33

Он храниться в правильном месте? Указывали адрес явно?

micromacro 06.09.2009 18:21

Вроде бы в правильном (рут директория). Вот попробовал указать явно crossdomain.xml c помощью лод полиси (пока та же ошибка):

Код AS3:

 
<?xml version="1.0"?>
<!-- intro\intro_remoting.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%">
 
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import flash.system.Security;
 
 
 
Security.loadPolicyFile("http://71.43.83.55:7001/blazeds_unziped/crossdomain.xml");
 
private function echo():void {
var text:String = ti.text;
remoteObject.echo(text);
}
 
// Handle the recevied message.
private function resultHandler(event:ResultEvent):void {
ta.text += "Server responded: "+ event.result + "\n";
}
// Handle a message fault.
private function faultHandler(event:FaultEvent):void {
ta.text += "Received fault: " + event.fault + "\n";
}
]]>
</mx:Script>
 
<mx:RemoteObject id="remoteObject"
destination="echoServiceDestination"
result="resultHandler(event);"
fault="faultHandler(event);">
 
 
</mx:RemoteObject>
 
<mx:Label text="Enter a text for the server to echo"/>
<mx:TextInput id="ti" text="Hello World!"/>
<mx:Button label="Send" click="echo();"/>
<mx:TextArea id="ta" width="100%" height="100%"/>
</mx:Application>


Idon 08.09.2009 16:55

А политику безопасности для локальных swf смотрели?

Вот тут например:
http://livedocs.adobe.com/flash/9.0/...=00000347.html

Конкретней:
Overview of permission controls ->The Global Flash Player Trust directory

MyXus 08.09.2009 18:46

Угу. Очень правильная ссылочка.
Security.sandboxType должен быть Security.LOCAL_WITH_NETWORK чтобы запускаться с локали и лазить по сети.

micromacro 08.09.2009 20:26

Не помогло. Более того, я могу с локального мувика загрузить совершенно левую картинку с любого сайта.

wvxvw 08.09.2009 20:54

Ну, во-первых, это бессмысленно пихать Security.loadPolicyFile() туда, где вы его написали, там могут быть только декларации.
А во-вторых, кросдомейн старого образца, нужно явно указывать, является ли этот файл политик главным, и как к нему относятся остальные файлы политик.
Ну и не понятно как именно вы тестируете (с локального сервера, из файловой системы, с удаленного сервера).

Кроме того, картинки нуждаются в файле политик только для доступа к битмапдате, и то это ограничение обходится багом.

BlooDHounD 08.09.2009 22:05

Цитата:

там могут быть только декларации.
ты уверен?

wvxvw 08.09.2009 22:22

Я более чем уверен, что это не так, но незачем путать человека объясняя исключения, с которыми ему в близжайшем будущем вряд ли прийдется столкнуться.

micromacro 08.09.2009 23:46

Цитата:

Сообщение от wvxvw (Сообщение 849230)
1.Ну, во-первых, это бессмысленно пихать Security.loadPolicyFile() туда, где вы его написали, там могут быть только декларации.
2.А во-вторых, кросдомейн старого образца, нужно явно указывать, является ли этот файл политик главным, и как к нему относятся остальные файлы политик.
3.Ну и не понятно как именно вы тестируете (с локального сервера, из файловой системы, с удаленного сервера).
4. Кроме того, картинки нуждаются в файле политик только для доступа к битмапдате, и то это ограничение обходится багом.

1. Перетащил этот кусок в тёг скрипт. Тот же эфект.
2. Попробую сейчас..
3. Тёстирую так. На ноуте есть MyApp.mxml его компилю с определёнными параметрамми. Если далее запускаю MyApp.swf то получаю ошибку. Если перетаскиваю MyApp.swf на сервер и набираю :
http://апыадрес:7001/blazeds_unziped/MyApp.html
то приложение работает на ура.

Компилю вот с такими параметрами в командной строке:
Цитата:

mxmlc -strict=true -show-actionscript-warnings=true -use-network=true -services=services-config.xml -context-root=blazeds_unziped MyApp.mxml
4. Понял. А как тогда провести чистый эксперимент чтобы убедится что проблема в crossdomain.cml?

wvxvw 09.09.2009 00:30

>> Если далее запускаю MyApp.swf
Как запускаете? в ХТМЛ странице или сам по себе, если в ХТМЛ странице - страница с локального сервера или из файловой системы?

MyXus 09.09.2009 02:30

Цитата:

Сообщение от micromacro (Сообщение 849278)
4. Понял. А как тогда провести чистый эксперимент чтобы убедится что проблема в crossdomain.cml?

А как насчет, посмотреть flashlogs? Необработанные ошибки безопасности там будут. Обработанные - тоже (за счет трейсов). Если не знаете что такое flashlogs - копайте в сторону mm.cfg или "firefox flash tracer plugin".

Вообще, если всё работает с хттп-сервера и не работает с локали - я был бы уверенным, что ошибка в sandbox type. Да и вообще, зачем тестировать на локали - тестируйте сразу с хттп-сервера - на то вам и build + run/debug paths.


Часовой пояс GMT +4, время: 06:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.