【问题标题】:Cross-domain issue. File Uploading & Adobe Flash跨域问题。文件上传和 Adob​​e Flash
【发布时间】:2011-07-14 13:52:16
【问题描述】:

我知道这个问题被问到令人作呕;但是,看来我被困住了。我在 Flash 中创建了一个文件上传器,它已在本地机器上成功测试。但是,当将其移动到生产服务器并尝试从另一台机器访问它时,不会调用 php。最初会引发安全异常,但在创建 crossdomain.xml 文件后已解决。

我已经在 php 文件中放置了一些日志,以查看它是否被调用并且没有骰子。如果在本地运行,就会调用它,但就像我说的,跨域不是那么多。

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

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

在配置 Flash 或在服务器上我还需要做些什么吗?

【问题讨论】:

    标签: php flash file-upload crossdomain.xml


    【解决方案1】:

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

    <?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>
    

    【讨论】:

    • 我无法通过闪存从 ie 8 向我的服务器发送请求。即使应用了这个 crossdomain.xml,我也无法在我的服务器上捕获请求。知道为什么吗?
    • 您是否收到错误消息?尝试使用代理(如 Charles Proxy)调试调用并查看服务器的响应是什么...
    • 命中未到达服务器。一切都在 FF 和 Chrome 上完美运行。这是特定于当我使用 MultipartURLLoader 将图像上传到服务器发送图像数据时。 Here's完整解释
    【解决方案2】:

    我对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> 
    

    这个文件没有任何限制,所以它有利于解决问题,但不适合生产。

    此外,您应该检查您的代码,看看您是否已经将 url 从 localhost 更改为您的 flash 文件中的域名。

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

    例如: 你有没有把你服务器上的目录chmod到777来上传文件。

    您可以参考我在以下问题中的回答: flex actionscript not uploading file to PHP page HELP!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多