我正在使用Flex 3(ActionScript 3.0)。我使用HTTP渐进式下载来播放声音文件。我想保护声音文件,只在请求来自我的flex应用程序时提供它们。我选择了最简单的解决方案,即为应用程序发送的每个请求添加HTTP标头。但是flash.media.Sound对象忽略了flash.net.URLRequest中设置的标头。这是一个例子,
URLRequest sndFile = new URLRequest("http://blah.com/media/load_sound.php");
sndFile.requestHeaders = new Array(new URLRequestHeader("req-orgin", "myflexapp"));
Sound snd = new Sound(sndFile);
snd.play();
req-origin的值在load_sound.php中为null。当我使用Firebug检查请求时,http://blah.com/media/load_sound.php的请求标头不包含标头。
有人知道为什么会忽略标头吗?有没有其他方法可以确定请求来自我的flex应用程序?
由于
答案 0 :(得分:1)
出于安全原因,Flash播放器确实限制了标头支持。我相信自定义标头仅支持POST请求。有各种限制。
您可以在此处查看其他信息:http://kb2.adobe.com/cps/403/kb403030.html
在这里:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLRequestHeader.html
跨域策略文件应解决任何问题,请查看此处:
http://kb2.adobe.com/cps/403/kb403184.html
古德勒克! (你可能需要它)