Apache flex Flex和JavaServlet:“;通道安全错误“;
问题: 无法将HTTP“GET”请求从Flex发送到java servlet 继续获取此错误消息:[RPC Fault faultString=“访问url时发生安全错误”faultCode=“Channel.Security.error”faultDetail=“Destination:DefaultHTTP”] 详情: 我已经为客户端使用Flex,为服务器端使用JavaWeb应用程序(基于servlet)构建了一个国际象棋游戏 我正在我的PC上托管flex应用程序(使用HFS~HTTP文件服务器,在端口80上侦听),java web应用程序也在我的PC上运行(在端口8080上的NetBeans上使用glass fish侦听) 当我在本地运行flex应用程序时,从-D://path到/flex-app.html,一切都很好,但是,当我从-'运行flex应用程序时http://domain-name/flex-app.html“-我收到上面的错误,服务器上没有记录任何请求 我试图将crossdomain.xml文件添加到服务器根文件夹,即使是最允许的,也没有成功 crossdomain.xml文件(可在'http://localhost:8080/crossdomain.xml”)详情如下:Apache flex Flex和JavaServlet:“;通道安全错误“;,apache-flex,servlets,Apache Flex,Servlets,问题: 无法将HTTP“GET”请求从Flex发送到java servlet 继续获取此错误消息:[RPC Fault faultString=“访问url时发生安全错误”faultCode=“Channel.Security.error”faultDetail=“Destination:DefaultHTTP”] 详情: 我已经为客户端使用Flex,为服务器端使用JavaWeb应用程序(基于servlet)构建了一个国际象棋游戏 我正在我的PC上托管flex应用程序(使用HFS~HTTP文件服
<?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="*" to-ports="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
在flex声明部分,我有一个httpService:
<s:HTTPService id="loginService"
url="http://localhost:8080/Chess/Login"
fault="onFault(event)"
result="login_onResult(event)"
resultFormat="object"
showBusyCursor="true"/>
感谢您的帮助。您的文件系统提供的SWF不受跨域限制;但是从web服务器上提供的文件是无效的。您需要在服务器(也称为localhost:8080)上安装一个crossdomain.xml文件,以避免出现安全错误。此外,您可能也不想将“localhost”硬编码到应用程序中。您可能想发布您的crossdomain.xml文件。您好,我编辑了我的帖子并添加了crossdomain.xml文件。我使用了“Charles-Web Debugging Proxy”(查看请求流量的绝佳工具),发现flex应用程序请求从“”下载crossdomain.xml文件,而不是我硬编码的url。+1用于使用网络嗅探器。是否有任何类型的服务器从端口8080重定向到端口37813?应用程序是否有其他部分可以呼叫端口37813?您确定您的Java服务器配置在端口8080上吗?我不知道有任何可能的重定向,应用程序的任何其他部分都无法调用37813。(另外,它还随其他?hostname=“localhost:8080”)一起发送。无论如何,我在另一台PC上部署了服务器和flex应用程序,一切正常,所以主要问题消失了。我出现问题的原因是,我认为crossdomain.xml文件应该可以从web应用程序的根目录(“localhost:8080/Chess”)访问,而实际上它应该可以从服务器本身的根目录(“localhost:8080/”)访问。感谢您的帮助。如果在Flash Builder中启用了网络监视器,则在Google Chrome和Firefox浏览器上,任何HTTPService请求都将返回与端口localhost:37813相关的HTTP 502错误。IE 8很好用。应用程序是通过FlashBuilder中的调试模式运行还是独立运行并不重要。解决方法是禁用网络监视器。