我在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不允许应用在自己的域之外使用它。**
答案 0 :(得分:1)
默认情况下,Flex不允许访问远程主机上的Web服务。这是Flex的安全功能。由于您的Flex应用程序部署在myapp.mysite.com
,因此它位于与mysite.com
处的服务不同的主机上。
您可以向mysite.com添加crossdomain.xml
,Flex将检查该服务是否允许来自不同域的访问。 crossdomain.xml
文件必须位于域的网络根目录(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 documentation中的更多信息,尤其是knowledge base article。
答案 1 :(得分:1)
尝试检查使用Tamper Data(Firefox的扩展名)进行的请求。检查以便应用找到crossdomain.xml文件。如果路径关闭,那就是你的问题。