无法在Chrome中从http源(wildfly服务器)加载swf文件?

时间:2019-04-26 12:03:08

标签: flash

无法从Chrome加载swf文件(http://my_server:8080/service/com.mypackage/my_file.swf)。当它位于硬盘驱动器上时,它可以从Chrome加载相同的文件。我正在使用Flash 32.0.0.171和Chrome版本51.0.2704.84(64位)。 IE等其他浏览器也存在类似问题。当我使用F12调试问题时,没有错误,也没有使用跨域,只有swf文件正在使用GET请求进行检索。

此swf文件由编译器版本Adobe AIR 3.7 SDK生成。由于某种原因,我无法安装最新的SDK。

  1. 如果我在Chrome中输入http://my_server:8080/service/com.mypackage/my_file.swf,则会自动下载。如果我输入此链接的swf文件(CDdemo.swf) https://security.stackexchange.com/questions/154182/why-is-google-chrome-blocking-raw-swf-playback,它已正确加载到同一浏览器上,并且Flash可以正确播放CDdemo.swf。我试图使用与上一个链接的html示例中相同的对象代码,但未显示任何内容。

  2. 如果我使用的HTML文件使用位于硬盘闪存上的swf可以读取并正确加载闪存。这段代码有效:

<object name="play" type="application/x-shockwave-flash" data="C:/tmp/my_file.swf"
  1. 我使用了相对路径com.mypackage / my_file.swf而不是http://my_server:8080/service/com.mypackage/my_file.swf。 Chrome给出通知该获取成功的获取请求的成功日志(200)。但是,Flash仍无法读取该文件。

  2. 我尝试使用以下代码,但也未显示任何内容:

<object width="800" height="600" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">

    <embed src="http://my_server:8080/service/com.mypackage/my_file.swf" quality="high"type="application/x-shockwave-flash" width="800" height="600" />
</object>
  1. 我还使用flashplayer_32_sa_debug.exe来调试swf文件。当我在本地hardisk上使用swf文件时,它可以工作,但是当我使用URL http://my_server:8080/service/com.mypackage/my_file.swf时,它崩溃了,没有错误。我想在那种情况下是身份验证问题。通常,我在my_server上进行身份验证,然后尝试加载swf文件。

  2. 如果我使用另一个swf文件,也不会显示任何内容。我强烈怀疑我的Wildfly服务器上存在阻塞。我可以使用码头服务器在同一台Chrome上加载该SWF文件。我认为这是Wildfly特有的问题。

这也是可以使用的原始代码,但现在不会在Chrome浏览器中显示:

<body>
<object name="play" type="application/x-shockwave-flash" data="http://my_server:8080/service/com.mypackage/my_file.swf" 
id="play" style="margin:0 10px;width:1000;height:1000;" allowScriptAccess="always">

<param name="wmode" value="transparent" />
<param name="flashvars" value="myvalue=blah" />
<param name="quality" value="high" />
<param name="menu" value="false" />
<param name="allowscriptaccess" value="always" />
 <param name="autoplay" value="true" />



</object>
</body>

在Wildfly服务器访问日志上,我有此INFO日志:

  

INFO [io.undertow.accesslog](默认任务12)167.22.22.22-0a658140-8ad8-4347-910b-796e651a12cf [27 / Apr / 2019:12:32:45 +0000]“ GET / my_service / my_file.swf HTTP / 1.1“ 200 116887”-“” Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,like Gecko)

我希望播放swf文件并显示内容。它应该是“正在加载...”。什么都没有显示,仅显示有关通过GET请求正确下载了swf文件的日志(200 OK)。

1 个答案:

答案 0 :(得分:1)

修复程序是允许将swf扩展名作为web.wml配置中的flash mime类型。 Wildfly服务器上的过滤器“ x-content-type-options”阻止了swf文件

<filter-ref name="x-content-type-options"/>

由于此SWF文件已正确加载了码头服务器,因此我不得不认为这是我的Wildfly服务器的罪魁祸首。