2010-02-19 159 views
1

我正在使用Flex 3(ActionScript 3.0)。我使用HTTP漸進式下載來播放聲音文件。我想保護聲音文件,只有當請求來自我的Flex應用程序時才提供聲音文件。我選擇了將最簡單的解決方案添加到從應用程序發送的每個請求中。但flash.media.Sound對象會忽略flash.net.URLRequest中設置的標頭。以下是一個示例,flash.media.Sound不發送HTTP請求標題

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應用程序?

謝謝

回答

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

古德勒克! (你可能需要它)