Ошибка Flex HTML Post - проблема безопасности? - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть созданный SWF, который создает несколько сообщений HTML.Когда я запускаю и компилирую swf локально, он успешно отправляет сообщения в мой php-код, размещенный на моем домене.Однако, когда я затем загружаю свой SWF-файл в свой домен, а затем изменяю тег embed, чтобы иметь полный путь к моему размещенному SWF-файлу, SWF-файл будет загружаться правильно, но он будет отправлять любые сообщения HTML в мои сценарии PHP.Причина, по которой у меня есть тег для вставки с полностью определенным URL-адресом, заключается в том, что моя цель состоит в том, чтобы иметь возможность разместить код для вставки html на нескольких различных сайтах.

У меня он работает на одном удаленном сайте, и в нем есть подстановочный файл crossdomain.xml.Однако, когда я пытаюсь применить файл crossdomain.xml к любому из размещенных сайтов или к моему компьютеру локально, ничего не запускается, когда я использую встраивание с полным URL-адресом, если я просто использую локально размещенный SWF на своем компьютере, публикация HTML-сообщенияпросто хорошо.

Мне кажется, это связано с файлом crossdomain.xml, однако, я полагаю, я не понимаю некоторые аспекты модели безопасности.

Поэтому моя цель - иметь возможность вставить HTML-код для вставки с полностью определенным swf (например, "http://www.abc.com/myswf.swf") на ряд других сайтов и сделать так, чтобы он делал стандартные HTML-записи на моем домашнем сайте (http://home.com).

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

1 Ответ

1 голос
/ 06 декабря 2010

Хорошо, я редактирую свой ответ, следуя приведенным выше примерам.

Согласно полученному сообщению об ошибке, проблема заключается в вызове ExternalInterface, который не разрешен с swf на сайт, на котором размещен ваш swf.

Это работает во втором примере, потому что вызов сделан в той же песочнице.

Взято из документов:

   SecurityError — The containing environment belongs to a security sandbox 
   to which the calling code does not have access. To fix this problem, 
   follow these steps:
    In the object tag for the SWF file in the containing HTML page, 
   set the following parameter:
   <param name="allowScriptAccess" value="always" />

   In the SWF file, add the following ActionScript:
   flash.system.Security.allowDomain(sourceDomain)

Возможно, вам также придется проверить параметр allowNetworking в вашем коде для встраивания ...

...