Flex - HTTPService - 访问YouTube API时出现安全性错误

时间:2011-07-28 01:47:48

标签: flex flex3 httpservice

我定义了以下HTTPService:

<mx:HTTPService id="youTubeHttpService" result="resultHandler(event)" fault="faultHandler(event)"/>

我正在使用以下网址(模式)获取特定用户的YouTube视频列表:

http://gdata.youtube.com/feeds/api/users/Y/uploads

其中Y是YouTube上的注册用户。

例如:http://gdata.youtube.com/feeds/api/users/YouTube/uploads

我使用以下语法发送HTTP请求:

youTubeHttpService.url = "http://gdata.youtube.com/feeds/api/users/YouTube/uploads";
youTubeHttpService.resultFormat = "object";
youTubeHttpService.send();

现在,上面的代码适用于使用我们软件的某些人,而其他人遇到以下错误(在faultHandler()中):

Error: [RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"] 

同样,错误发生在某些人身上,而不是其他人身上。

我错过了什么吗?它是机器/浏览器特定的问题吗?作为一个完整性检查,上面的代码使用chrome中相同的.swf文件,即firefox和safari。

我已经阅读了关于crossdomain.xml的内容,并且认为这不是YouTube已定义的问题。

最后,所有用户(内联网应用)都在使用IE和相同版本的闪存。

任何帮助都会非常感激,因为我过去2天一直在拔头发并一遍又一遍地问这个问题“为什么它只发生在一些用户而不是其他用户?”

范数。

2 个答案:

答案 0 :(得分:0)

他们的安全设置是否可能过高?查看此页面以更改它们http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

答案 1 :(得分:0)

您有跨域政策限制 http://gdata.youtube.com/crossdomain.xml

看起来youTube几乎可以容纳所有东西 所以这让我相信文件没有被加载 试试这个或它的一种形式。

Security.allowDomain( 'gdata.youtube.com' );
Security.loadPolicyFile( 'gdata.youtube.com' );

同时使用FireFox的HTTPFox插件查看是否加载了

如果情况变得更糟try this