我最近将一个Flash应用程序部署到服务器,现在在发出HTTPService请求时遇到错误。我在wwwroot文件夹中放了我认为最宽容的crossdomain.xml,但仍然会出错。
有趣的是,只有当请求来自直接用户交互(即按钮点击)时,才会出现错误。该应用程序发出其他方式(即creationComplete)启动的其他请求,它们似乎按预期工作。
有人发现crossdomain.xml有什么问题,还是有其他建议?
错误消息
[RPC Fault faultString =“访问url的安全性错误”faultCode =“Channel.Security.Error”faultDetail =“Destination:DefaultHTTP”] 在mx.rpc :: AbstractInvoker / http://www.adobe.com/2006/flex/mx/internal::faultHandler() 在mx.rpc :: Responder / fault() 在mx.rpc :: AsyncRequest / fault() 在DirectHTTPMessageResponder / securityErrorHandler() 在flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() 在flash.net::URLLoader/redirectEvent()
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*" secure="false" />
<allow-http-request-headers-from domain="*" headers="*" secure="false" />
</cross-domain-policy>
答案 0 :(得分:1)
您需要小心这些跨域策略文件,因为它们可能会打开一些严重的安全漏洞。您不应该在使用cookie或基本身份验证的站点上使用*策略,并且永远不要在内部网服务器上放置*策略。
避免这些安全问题并使其工作的最简单方法是确保从中加载SWF的URL以及发出请求的URL是相同的协议,主机名和端口(如果已指定)。如果它们不同,那么您应该考虑使用代理,以便它们是相同的。 BlazeDS或Apache禁止轻松设置为代理。
答案 1 :(得分:0)
试试这个 用记事本打开配置文件 更换 HTTP:// <强>服务器名强> / ArcGIS的/休息/服务/底图/地图服务器/# 同 HTTP:// <强> SERVERIP 强> / ArcGIS的/休息/服务/底图/地图服务器/#