跨域问题.文件上传&Adobe Flash


Cross-domain issue. File Uploading & Adobe Flash

我知道这个问题已经被问得很烦了;然而,我似乎被困住了。我在Flash中创建了一个文件上传器,并在本地机器上成功测试。但是,当将其移动到生产服务器并尝试从另一台机器访问它时,不会调用php。最初会抛出安全异常,但在创建crossdomain.xml文件后已经解决了。

我已经在php文件中放置了一些日志记录,看看它是否被调用,没有骰子。它叫做if在本地运行,但就像我说的,跨域不是那么多

我的crossdomain.xml文件如下所示。

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

在Flash或服务器上的配置中是否还有其他需要做的事情?

您可以尝试新的跨域格式:

<?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"/>
  <!-- Place top level domain name -->
  <allow-access-from domain="*" />
  <allow-access-from domain="*" to-ports="80,443"/>
  <allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>

我不熟悉flash,但我正在开发一些flex应用程序,所以我可以给你我的经验来处理跨域问题。

FlashPlayer正在寻找URL域根中的crossdomain.xml文件,例如

domain.com/crossdomain.xml

是FlashPlayer想要找到它的地方。因此,您可以通过输入上述url来加载跨域文件。

但是,您可以使用Security.loadPolicyFile(url)从服务器上的备用位置加载crossdomain.xml文件。

您可以尝试以下crossdomain.xml:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM “/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy> 
<site-control permitted-cross-domain-policies="all"/> 
<allow-access-from domain="*" to-ports="*" secure="false"/> 
<allow-http-request-headers-from domain="*" headers="*" secure="false"/> 
</cross-domain-policy> 

这个文件意味着对任何东西都没有限制,所以这对于故障排除很好,但不适合在生产环境中使用。

另外,你应该检查你的代码,看看你是否已经在你的flash文件中把url从localhost改为你的域名。

有时跨域问题与跨域文件无关。

例如

:是否将服务器上的目录chmod为777用于文件上传?

你可以参考我对以下问题的回答:flex actionscript不上传文件到PHP页面帮助!

你应该给我们一些flash和php编码,也错误的消息,你已经收到。否则,你的问题太笼统了。