1

我在 SSL Internet Domain1 上有一个 Flash 应用程序,在非 SSL Intranet Domain2 上有一个 Web 服务。防火墙端口 80 在它们之间是开放的。跨域文件位于 Domain2 上。

<cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*" to-ports="*"/> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy>

我认为这是非常开放的。

我可以直接从 Domain1 访问 Domain2 上的 Web 服务,没有错误。

当 Flash 应用程序加载时,Fiddler 显示 WSDL 已加载。Init 函数调用 Web 服务来加载组合框。我从来没有在 Fiddler 中看到过这个调用。

在我的开发实例上一切正常,这一切都在 Domain2 上。

我 98% 确定这是一个跨域问题,但 2% 保留给未知数。几个星期以来,我一直在许多论坛上查看 Crossdomain 帖子(真的!这是一个附带项目),并尝试了许多不同的更改。没有任何改变。

非常感谢任何建议。

谢谢!

4

1 回答 1

0

<allow-access-from>并且<allow-http-request-headers-from>有一个不为人知的属性secure。该属性专门用于指示我们是否授权来自不安全域的安全连接(即来自 http 的 https);默认情况下它是真的(连接被拒绝)。

尝试使用此跨域,它可能会解决您的问题。

<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>
于 2013-07-02T14:10:51.853 回答