我在flex builder中创建了一个项目,应用程序服务器类型设置为none。

当我调试时,我可以从我网站上的本地计算机上访问该网站服务 http ://mysite.com/ws/ws.aspx WSDL

当我将flex应用程序上传到mysite.com/myapp.html时,效果很好。

但是,当我将其上传到myapp.mysite.com/myapp.html时,它将无法访问该网络服务。

任何人都知道我缺少什么?

由于

P.S。 WS是用VB.net创建的,当我创建一个应用服务器类型设置为.net的flex项目时,它不会从我的本地机器访问WS

这是我的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="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

**我的猜测是它不是灵活问题,而是.net安全功能......我不知道如何配置。

.NET不允许应用在自己的域之外使用它。**

有帮助吗?

解决方案

默认情况下,Flex不允许访问远程主机上的Web服务。这是Flex的安全功能。由于您的Flex应用程序部署在 myapp.mysite.com ,因此它位于与 mysite.com 服务不同的主机上。

您可以将 crossdomain.xml 添加到mysite.com,Flex将检查该服务是否允许来自不同域的访问。 crossdomain.xml 文件必须位于域的Web根目录中( mysite.com/crossdomain.xml )。我使用了以下内容来允许调试使用。请注意,它允许全部使用,因此如果要限制生产中的使用,则需要稍后进行修改。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
    "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*" to-ports="*" />
   <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Flex文档中的更多信息,尤其是知识库文章

其他提示

尝试检查使用Tamper Data(Firefox的扩展名)进行的请求。检查以便应用找到crossdomain.xml文件。如果路径关闭,那就是你的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top