我正在使用 ZendAMF 协议使用 Flex 和 PHP 开发一个 Web 应用程序。从昨天开始,每当我将应用程序发布到远程服务器时,都会出现这个奇怪的问题。本地一切正常,只有当我在服务器上发布它时。这是我得到的错误消息:
Send failed
Channel.Security.Error error Error #2048: Security sandbox violation: http://mydomain.com/login/MainFrame.swf cannot load data from http://localhost/bin-debug/gateway.php. url: 'http://localhost/bin-debug/gateway.php'
我很确定我的 gateway.php 和 amf_config 文件没有任何问题,因为我知道它们略有不同。(我正在使用这些文件从事情确实有效的备份位置)
此外,我还在 Web 根目录和它自动进入的应用程序目录上复制了我的 crossdomain.xml。这是内容:
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
问题是在生产版本中它仍在尝试访问本地文件。我已经尝试过很多关于这个问题的搜索,但没有找到与我的情况相同的情况。
gateway.php 源码部分
<?php
ini_set("display_errors", 1);
$dir = dirname(__FILE__);
$webroot = $_SERVER['DOCUMENT_ROOT'];
$configfile = "$dir/amf_config.ini";
//default zend install directory
$zenddir = $webroot. '/ZendFramework/library';
//Load ini file and locate zend directory
if(file_exists($configfile)) {
$arr=parse_ini_file($configfile,true);
if(isset($arr['zend']['webroot'])){
$webroot = $arr['zend']['webroot'];
$zenddir = $webroot. '/ZendFramework/library';
}
if(isset($arr['zend']['zend_path'])){
$zenddir = $arr['zend']['zend_path'];
}
}
接下来我可以尝试什么来解决这个问题?