Apache flex Flex-如何在没有crossdomain.xml文件的情况下调用Web服务

Apache flex Flex-如何在没有crossdomain.xml文件的情况下调用Web服务,apache-flex,flash,web-services,wsdl,crossdomain.xml,Apache Flex,Flash,Web Services,Wsdl,Crossdomain.xml,如何使用未明确创建crossdomain.xml的Web服务 我知道这是为了安全和防止跨站点脚本编写,但这似乎是Flex框架的一个主要限制 例如,如果我想使用一个Web服务,这被认为是语言不可知的,那么我不能使用Flex。Web服务/服务器必须专门为Flex/Flash做好准备。如果它不是,那么它就不能被消费 这不可能是对的,是吗?如果您的Web服务位于另一个域上,您将需要一个跨域文件。纯粹而简单 我找到了两种方法: 使用HTTPService 使用外部接口调用嵌入在flash文件容器页面上的J

如何使用未明确创建crossdomain.xml的Web服务

我知道这是为了安全和防止跨站点脚本编写,但这似乎是Flex框架的一个主要限制

例如,如果我想使用一个Web服务,这被认为是语言不可知的,那么我不能使用Flex。Web服务/服务器必须专门为Flex/Flash做好准备。如果它不是,那么它就不能被消费


这不可能是对的,是吗?

如果您的Web服务位于另一个域上,您将需要一个跨域文件。纯粹而简单

我找到了两种方法:

  • 使用HTTPService
  • 使用外部接口调用嵌入在flash文件容器页面上的Javascript,然后容器页面将调用web服务

  • 选项2更复杂,但我更喜欢它。这个链接应该可以帮助您完成ExternalInterface类:

    我所做的是“放置一个中间人”。所以基本上,我放了一个php脚本,从另一端读取我需要的内容。是的,不幸的是,这需要一个“服务器”。您也可以尝试使用JavaScript。

    使用代理服务器(如Apache或BlazeDS)将来自SWF源主机的请求转发到具有web服务的主机。

    正如下面的答案所示,事实上,这就是您描述的方式。在任何其他上下文中,“安全性”意味着“防止未经授权访问服务”,而在Flash中,它只是意味着“将平台锁定到几乎不可用的程度,以便网络管理员继续在公司环境中部署它。”或类似的内容。老实说,任何试图使Flash的“安全”特性合理化的尝试都是抽象的不合逻辑的。你的最后一行是迄今为止最好的一行!!