救命! Flash无法从第三方域加载XML数据

时间:2009-03-19 01:21:00

标签: xml flash rss actionscript-2 data-access

我使用RSS源从雅虎获取消息,使用:

XML.load("http://finance.yahoo.com/rss/topstories")

是的,this is legal以及所有,虽然它在我的SWF离线时工作正常 - 但它显示出安全性错误,但我允许我的D驱动器“域”在Adobe Security Panel中。

但是一旦我将其上传到我的服务器,并在线测试:

  • 在Firefox3中数据无法加载,在状态栏上显示一条消息“从finance.yahoo.com转移数据”

  • 在InternetExplorer7中,它无声地失败,没有任何消息或警告。

发生了什么事?我甚至放了一个带有*通配符的crossdomain.xml文件(允许所有域名)。

3 个答案:

答案 0 :(得分:2)

问题在于你的crossdomain.xml ...实际上在你的网站上添加它没有任何效果,你必须要求雅虎把它放在他们的域名上: - )

答案 1 :(得分:2)

好像你需要雅虎的子域才能访问它。

<强> http://finance.yahoo.com/crossdomain.xml

<cross-domain-policy>
    <allow-access-from domain="*.yahoo.com"/>
    <allow-access-from domain="us.js2.yimg.com"/>
</cross-domain-policy>

快速浏览是在您自己的服务器上设置代理脚本。那里有很多例子。没有试过这个,但这个人写的原因和你一样:

http://www.abdulqabiz.com/blog/archives/general/php_proxy_script_for.php

答案 2 :(得分:1)

我不确定这里到底出了什么问题,你需要给我一些我想的更多细节。

我强烈建议你完整阅读。

http://www.adobe.com/devnet/flash/articles/fplayer8_security.html

此外,跨域仅适用于您从请求 而不是的域。

它也可以帮助您安装Fiddler

http://www.fiddler2.com/fiddler2/

或查尔斯

http://www.charlesproxy.com/

这样可以让你更好地进行http调试。我的猜测是你的安全沙箱行为存在冲突。