2

这让我发疯......我正在尝试用 flash 构建一个 youtube 播放器,每次加载视频时,都会出现运行时安全沙箱错误..我已经将 crossdomain.xml 放在我的根服务器http://mysite.com但我仍然收到错误...我错过了什么吗?我必须将它加载到我的 flex 项目中吗?谢谢您的回复...

我的 crossdomain.xml

<!-- <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
       <allow-access-from domain="*.youtube.com"/>
        <allow-access-from domain="s.ytimg.com"/>
    </cross-domain-policy> 
 -->

编辑:20100811T0723;这是来自http://popslinger.org/crossdomain.xml的实际 XML

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-    policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
4

4 回答 4

4

我也遇到了很多错误,但它们通常似乎在 YouTube 方面

这是一个例子:

*** Security Sandbox Violation ***
SecurityDomain 'http://www.youtube.com/apiplayer?version=3' tried to access 
incompatible context 'http://s.ytimg.com/yt/swf/apiplayer3-vfl181412.swf'

如您所见,这两个都是 YouTube 域

因此,我查看了 YouTube 自己的跨域策略文件。事实证明,这些文件需要更新。阅读以下内容:http: //www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes_02.html#head1

这是来自 s.ytimg.com 的政策文件

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

引发以下警告

警告:域 s.ytimg.com 未指定元策略。应用默认元策略“仅限主”。此配置已弃用。请参阅http://www.adobe.com/go/strict_policy_files以解决此问题。

这就是它的样子

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*"/>
</cross-domain-policy>

这是另一个警告:

警告:域 video-stats.video.google.com 未明确指定元策略,但策略文件http://video-stats.video.google.com/crossdomain.xml的 Content-Type为 'text/x -跨域策略'。应用元策略“按内容类型”。

看起来 YouTube 应该对此进行调查,所有这些警告和安全错误消息都很烦人。

实际上,看看错误,如果您的域名没有出现在任何地方,那么您的跨域文件工作正常。

于 2010-08-11T01:43:46.247 回答
3

这不是跨域文件的设计方式。您的服务器上有一个跨域文件绝对不会让 Flash 从 YouTube 检索数据。此外,您是在检索 AS3 Chromeless 播放器以遵守服务条款,还是您是在抓取 URL 以最终检索 mp4/flv?

于 2010-08-11T03:20:50.117 回答
2

找不到页面 - 404 错误页面 您要查找的页面 ( http://mysite.com/crossdomain.xml ) 不在这里。

确保您的 Web 服务器配置为分发 XML 文件。默认情况下,IIS 没有。启用它的步骤可以在这里找到:http: //dannythorpe.com/2008/03/16/serving-rss-on-iis/

于 2010-08-11T00:22:14.773 回答
2

如果那是您的实际 XML 文件,它似乎已被注释掉。

删除这个:

<!--

还有这个:

-->

PS:好的,文件可以加载并且有内容了。也许您的问题出在其他地方?

该文件的作用是授予从任何子域提供的任何 swfyoutube.com或域s.ytimg.com权限以从popslinger.org. 如果您的问题是由 youtube 提供的内容试图访问从您的域提供的数据引起的,这可能会起作用。是这样吗?

于 2010-08-11T00:24:07.613 回答