Почему некоторые пользователи получают ошибку rsl во флеш-приложении?

Когда некоторые из моих пользователей пытаются получить доступ к моему приложению flash, они получают сообщение об ошибке

RSL Error 1 of 1

То есть, нет кода ошибки или чего-либо еще. Эта страница работает для них в Internet Explorer, но они в основном используют Chrome. Это также отлично работает для меня и другого сотрудника в Chrome. Мы в одной сети.

Вот мой файл.actionScriptProperties

  <?xml version="1.0" encoding="UTF-8"?>
    <actionScriptProperties mainApplicationPath="Works.mxml" version="3">
      <compiler additionalCompilerArguments="-locale en_US -strict=true -debug=true -optimize=true -link-report output.xml -use-network=false" copyDependentFiles="false" enableModuleDebug="true" flexSDK="Flex 3.2" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersion="9.0.124" htmlPlayerVersionCheck="true" outputFolderPath="bin-debug" sourceFolderPath="src" strict="true" useApolloConfig="false" verifyDigests="true" warn="true">
        <compilerSourcePath/>
        <libraryPath defaultLinkType="1">
          <libraryPathEntry kind="4" path="">
            <modifiedEntries>
              <libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/flex.swc" useDefaultLinkType="true">
                <crossDomainRsls>
                  <crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="flex.swf"/>
                </crossDomainRsls>
              </libraryPathEntry>
              <libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="false">
                <crossDomainRsls>
                  <crossDomainRslEntry autoExtract="false" policyFileUrl="" rslUrl="https://example.com/rsl/framework_3.2.0.3958.swz"/>
                  <crossDomainRslEntry autoExtract="false" policyFileUrl="" rslUrl="https://example.com/rsl/framework_3.2.0.3958.swf"/>
                </crossDomainRsls>
              </libraryPathEntry>
              <libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/utilities.swc" useDefaultLinkType="true">
                <crossDomainRsls>
                  <crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="/rsl/utilities.swf"/>
                </crossDomainRsls>
              </libraryPathEntry>
            </modifiedEntries>
          </libraryPathEntry>
          <libraryPathEntry kind="1" linkType="1" path="libs"/>
        </libraryPath>
        <sourceAttachmentPath/>
      </compiler>
      <applications>
        <application path="Calendar.mxml"/>
        <application path="testImage.mxml"/>
        <application path="XMLCreate.mxml"/>
        <application path="book.mxml"/>
        <application path="Works.mxml"/>
        <application path="cpapp.mxml"/>
        <application path="books.mxml"/>
        <application path="flashup.mxml"/>
        <application path="Eyeballs.mxml"/>
        <application path="albums.mxml"/>
        <application path="DragDrop.mxml"/>
        <application path="flexpaint.mxml"/>
        <application path="testdrop.mxml"/>
        <application path="TextTicker.mxml"/>
        <application path="slideshow.mxml"/>
        <application path="test.mxml"/>
        <application path="bifedit.mxml"/>
        <application path="test_canvas.mxml"/>
        <application path="canvas.mxml"/>
        <application path="LayoutBuilder.mxml"/>
        <application path="ComponentBuilder.mxml"/>
        <application path="BIF.mxml"/>
      </applications>
      <modules/>
      <buildCSSFiles>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/grey.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/timeless3.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/letter_photography.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/bobday.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/wdt.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/sigart.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/save_on_crafts.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/creativehabitat.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/acmoore.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/kamans.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/ipi.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/bachphoto.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/tfstyle.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/front_slide.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/fonts.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/abm.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/appo.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/benfranklin.css"/>
      </buildCSSFiles>
    </actionScriptProperties>

РЕДАКТИРОВАТЬ: Хорошо, пользователь не отправил мне полную страницу, которая содержала номер ошибки. Полная ошибка:

RSL Error 1 of 1
Error #2048

EDIT2: Crossdomain.xml (находится по адресу https://example.com/crossdomain.xml)

<cross-domain-policy>
  <allow-access-from domain="*"/>
</cross-domain-policy>

РЕДАКТИРОВАТЬ 3: Я взглянул на информацию о сети разработчиков. Похоже, что на моей машине он даже не пытается запросить файл междомена, в то время как на машине моего коллеги он запрашивает его по http и https.

Вот код, который встраивает флэш-память:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Works" name="Works" width="990" height="670" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
    <param name="quality" value="high" />
    <param name="movie" value="/sites/all/misc/cfa_flex/canvas.swf" />
    <param name="wmode" value="transparent" />
    <param name="bgcolor" value="#ffffff" />
    <param name="allowScriptAccess" value="always" />
    <param name="allowFullScreen" value="true" />  
    <param name="flashVars" value="prodid=&amp;prjid=&amp;apptype=canvastransfer&amp;pid=elegance" />  
    <param name="apptype" value="canvastransfer" />  
    <param name="prodid" value="" />  
    <param name="prjid" value="" />  
    <param name="allowFullScreen" value="true" />  
    <param name="domain" value="https://example.com" />
    <script type="text/javascript" src="/sites/all/misc/js/AC_OETags.js"></script>
    <script type="text/javascript" src="/sites/all/misc/js/detectflash.js"></script>
    <script type="text/javascript" src="/sites/all/misc/js/miscscripts.js"></script>
    <script type="text/javascript" src="/misc/jquery.js"></script>
    <script type="text/javascript" src="/sites/all/misc/js/tl.js"></script>
    <script type="text/javascript" src="/sites/all/modules/contrib/thickbox/thickbox.js"></script>
    <script language="JavaScript" type="text/javascript">
      //<![CDATA[
        if (hasReqestedVersion) {var content = '<embed src="/sites/all/misc/cfa_flex/canvas.swf?k" quality="high" bgcolor="#ffffff"'
        + 'id="Works"'
        + 'allowFullScreen="true"'
        + 'width="990" height="670" name="Works" align="middle"'
        + 'wmode="transparent"'
        + 'play="true"'
        + 'loop="false"'
        + 'quality="high"'
        + 'allowFullScreen="true"'
        + 'flashVars="apptype=canvastransfer"'
        + 'allowScriptAccess="always"'
        + 'type="application/x-shockwave-flash"'
        + 'pluginspage="http://www.adobe.com/go/getflashplayer">'
        + '</embed>';
        document.write(content);

        } else {
        document.write('<h3 style="font-family:Arial, Helvetica, sans-serif; color:#999999;">You do not have the latest version of Macromedia Flash Player.</h3><a href="http://www.macromedia.com/go/getflashplayer" target="_blank"><img src="http://www.macromedia.com/images/shared/download_buttons/get_flash_player.gif" border="0" width="88" height="31" alt="Get Adobe Flash Player" /></a><a href="http://www.adobe.com/go/getflash/">The website requires 9 or higher version of flash to display the content.</a><p>To Download Flash Player on Android, see: <a href="http://forums.adobe.com/thread/1061194">http://forums.adobe.com/thread/1061194</a>.</p>');

        }
      //]]>
    </script>
  </object>

РЕДАКТИРОВАТЬ 4: Кроме того, когда кросс-домен вызывается с моего компьютера коллеги, он вызывается с использованием нашего другого домена

https://www.example2.com/crossdomain.xml
http://www.example2.com/crossdomain.xml

Принимая во внимание, что запрос на оригинальную страницу

https://example.com/cfa/canvastransfer

Дело в том, что все они должны работать на всех 3 наших доменах одинаково.

РЕДАКТИРОВАТЬ 5: Обновленный allowScriptAccess будет всегда, а не sameDomain в коде, который встраивает Flash. Без изменений.

РЕДАКТИРОВАТЬ 6: В одном из моих файлов MXML я вызываю это (все еще возникают те же проблемы):

Security.loadPolicyFile("https://example.com/crossdomain.xml");

2 ответа

Решение

Как только я получил файл crossdomain.xml для загрузки, у меня все еще были проблемы

Security.loadPolicyFile(getRootDomain() + "crossdomain.xml");
Security.loadPolicyFile(getRootDomain() + "policyFile.xml");

public static function getRootDomain():String
{
  return "https://" + ExternalInterface.call("getRoot") + "/";
}

По сути, следовало убедиться, что все URL-адреса используют https, а не http, казалось, решают проблему вместе со строками loadPolicyFile.

У вас есть файл crossdomain.xml, развернутый на сервере, который обслуживает rsls?

Это также может быть вызвано попыткой загрузить rsl через http, когда ваше приложение swf обслуживается через https.

Другие вопросы по тегам