gpt4 book ai didi

actionscript-3 - AS3 中 302 重定向的跨域策略行为

转载 作者:行者123 更新时间:2023-12-04 06:46:11 33 4
gpt4 key购买 nike

这些天我在网上爬了很多,但无法获得任何关于 crossdomain.xml 文件在 302 重定向情况下的行为的准确信息;特别是沙箱在上一个版本中发生了重大变化!

我是 Flash 的新手...所以非常感谢任何建议!

我最近一直在做一个项目,该项目使用带有某种 CDN 分发的音频流!发生的事情是触发了一个公共(public) url,然后用户被动态重定向到下一个可用的最佳服务器。就我而言,我无法访问服务器端的东西(至少不会很快)。提供适当 crossdomain.xml 的唯一路径是执行重定向的路径。所有其他动态路径只提供内容!

http://resource.domain.com (valid crossdomain.xml)

302 => http://dyn1.domain.com/...

302 => http://dyn2.domain.com/...

302 => http://dyn3.domain.com/...

我注意到 flash 并不关心我是否尝试加载音频流...

var req :URLRequest = new URLRequest("http://resource.domain.com");

var sound :Sound = new Sound(req); // ie. effectively playing http://dyn3.domain.com

sound.play();

重定向和流式处理都做得很好!并且不会为任何跨域文件而烦恼并开始播放!

虽然当我尝试一些不同的东西时,比如为请求设置一些自定义 header 并改为使用 URLStream 加载文件,一切都变得一团糟!好吧,重定向已经完成,正如预期的那样,但突然间我需要在重定向位置中的另一个跨域文件!

是否有任何关于发生的事情的解释以及最终解决此问题的方法?!

感谢您的宝贵时间!


这是一个站点问题:我注意到在本地受信任的沙箱中时一切正常,并且错误主要发生在远程沙箱中(如果不是唯一的话)。本地受信任的沙箱有没有可能根本不关心跨域策略文件!?

最佳答案

总结

crossdomain.xml 添加到每个 CDN 主机或采用有限的 Sound 功能。

详情

  1. SWF files that are assigned to the local-trusted sandbox can interact with any other SWF files and can load data from anywhere (remote or local).

  2. Sound 可以加载来自其他域的东西 that don't allow access using cross-domain policy with certain restrictions :

    Certain operations dealing with sound are restricted. The data in a loaded sound cannot be accessed by a file in a different domain unless you implement a cross-domain policy file. Sound-related APIs that fall under this restriction are Sound.id3, SoundMixer.computeSpectrum(), SoundMixer.bufferTime, and the SoundTransform class.

  3. Flash 通常有漂亮的 complex cross-domain policies 但在你的情况下底线是你需要在每个主机上都有正确的 crossdmain.xml 除了服务 SWF 的主机:

    3.1。如果您的文件是从 http://resource.domain.com 提供的,则不需要 http://resource.domain.com/crossdomain.xml 但它是 really good to have one .

    3.2。您需要有适当的 http://dyn2.domain.com/crossdomain.xml 明确允许您的 SWF 访问 dyn2.domain.com 才能使用 URLLoader 和其他提供对原始加载数据的访问的 API。

    3.3。这些限制是有原因的——cookie(和其他环境用户凭证)。如果 Flash 在重定向后不需要正确的跨域,则可以通过简单地首先加载自己的重定向器来访问任何附加了用户 cookie 的域。 This means accessing all user cookie-protected data (e.g. mail.google.com) from any SWF on the internet that's running in your browser.

关于actionscript-3 - AS3 中 302 重定向的跨域策略行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256423/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com