1

我已经阅读了很多关于 Flash Player 新策略的信息,也知道主策略文件。现在想象以下情况:有两台服务器在自定义端口上运行服务 (http)

  • servera.com:2222/websiteA
  • serverb.com:3333/websiteB

现在我从服务器 a(例如 servera.com:2222/websiteA/A.swf)打开一个想要访问 serverb 服务的 swf。当然,我需要在正确的位置使用 crossdomain.xml,并且可能有多种变体。我不想使用主策略文件,因为我可能无法控制两台服务器的根目录。

我发现的一种解决方案适用于以下跨域:

<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*"/>
</cross-domain-policy>

服务于serverb.com:3333/websiteB/crossdomain.xml

所以现在我的问题是:是否有可能在 allow-access-from 规则中摆脱"*"并使用正确的(不像一般的)域名?*我所有的尝试都失败了,据我所知,这应该是可能的。

4

2 回答 2

1

尝试:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
    <allow-access-from domain="*.servera.com" to-ports="3333"/>
</cross-domain-policy>

(您可能还必须为 from 域指定端口 - 我有一段时间不必处理 w/ 跨域 w/ 端口了。

于 2010-04-09T15:20:04.360 回答
0

对跨域策略文件要非常小心。如果您使用 cookie 身份验证或 serverb.com 在内部网络上,则不应使用跨域策略。或者,您可以使用 servera.com 上的代理来代理对 serverb.com 的请求。这将避免跨域请求。

您还应该使用包含以下内容的 mm.cfg 文件设置日志记录:

ErrorReportingEnable=1
TraceOutputFileEnable=1
PolicyFileLog=1
PolicyFileLogAppend=1

这会将错误记录到文本文件中。查看有关设置 mm.cfg 文件的更多详细信息

于 2010-04-09T17:08:06.887 回答