1

我在 MAMP 中运行主机,可通过http://localhost:8888https://myapp.co.uk:8890访问

我的问题是我的 flexunit 测试无法访问在该主机上运行的 php 脚本。

根目录是 crossdomain.xml 文件:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies='all'/>
    <allow-access-from domain='*' to-ports='*'/>
    <allow-access-from domain="localhost" to-ports="*"/>
</cross-domain-policy>

可以通过浏览器中的任一主机读取 crossdomain.xml 文件。

我正在尝试访问一个 php 脚本,我可以再次通过浏览器中的任一主机访问它。

如果我将构建配置设置为默认值,我会得到一个直接的 IOError。如果我将构建配置设置为使用-use-network=true,我会得到:

Warning: Failed to load policy file from https://myapp.co.uk:8890/crossdomain.xml

其次是安全沙盒违规:

connection to https://myapp.co.uk:8890/path/to/script.php halted - 
not permitted from file:///Users/me/path/to/output/_flexunit.swf

不管我是让 crossdomain.xml 文件自动加载,还是使用显式加载它Security.loadPolicyFile(...)

我正在通过 IntelliJ IDEA 中的 flexunit 任务运行我的 flexunit 测试。

有什么建议么?我难住了。


另外:应用程序的swf能够访问MAMP文件没有问题,只是flexunit测试无法访问。我想知道将测试结果返回到 IntelliJ IDEA 是否可能与套接字有关。

4

1 回答 1

0

这是一个安全问题,您不能使用 crossdomain.xml 在您的计算机上允许 swf 网站访问。您必须在您的计算机上手动指定受信任的 SWF 或目录。

  • 右键单击 Flash 播放器并转到全局设置。
  • 打开全局安全设置面板
  • 单击编辑位置并添加文件或文件夹。

您可以查看此站点以获取带有屏幕截图的信息。

于 2017-08-28T19:04:24.327 回答