【问题标题】:Is crossdomain.xml file a mandatory for flex applications to access server?flex 应用程序访问服务器是否必须使用 crossdomain.xml 文件?
【发布时间】:2013-06-07 04:45:05
【问题描述】:

在我的 flex 应用程序中,war 与 crossdomain.xml 策略文件一起打包。

    <?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

这里提到的条目是指来自任何/所有域的 SWF 文件都可以访问服务器数据。

我的问题是

  1. 必须要有crossdomain.xml才能访问服务器?

  2. 如果我们在 SWF 文件访问服务器以获取数据时没有 crossdomain.xml 策略文件会发生什么?

  3. 如果我们不放置 crossdomain.xml,服务器访问其数据是否有任何默认限制?

请帮我解答。

【问题讨论】:

    标签: apache-flex flex4 cross-domain flex4.5 flex4.6


    【解决方案1】:

    crossdomain.xml 是否必须存在才能访问 服务器?

    没有。对于位于与服务器不同的域中的基于浏览器的 SWF,它是必需的。但是,从同一个域提供的 SWF 不需要 crossdomain.xml 位置。部署在浏览器之外的 Flash Platform 应用程序,作为 AIR 应用程序或移动应用程序,不需要跨域文件来访问服务器。

    如果我们没有 crossdomain.xml 策略文件,而 SWF 文件正在访问服务器以获取数据?

    如果 SWF 与服务器在同一个域中提供;那么什么都不会发生。如果 SWF 位于不同的域中,那么您的远程类将分派一个故障事件;这将包含各种安全错误。

    服务器是否有任何默认限制访问其 如果我们不放置 crossdomain.xml 的数据?

    是的,但我没有说什么。 SWF 在与服务器相同的域中提供服务,可以访问该域上的文件/服务。来自不同域的 SWF 不能。

    例如,位于 http://mydomain.com/mySWF.swf 的 SWF 将能够毫无问题地访问 http://mydomain.com/service/MyServiceEndPointhttp://mydomain.com/someImage.gif。它将无法访问http://myOtherDomain.com/service/MyServiceEndPointhttp://myOtherDomain.com/someImage.gif

    【讨论】:

    • 嗨 Reboog711,非常感谢您的回答。这让我对跨域策略文件有了一个清晰的认识。
    • 太棒了;如果您认为这完全回答了您的问题,请务必将其标记为“正确”答案。在您可以按下的投票号码下方应该有一个“检查”按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2012-07-06
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多