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

时间:2010-05-04 20:39:22

标签: flex flash web-services wsdl crossdomain.xml

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

我理解这是为了安全和防止跨站点脚本,但它似乎是Flex框架的主要限制。

例如,如果我想使用web服务,假设它与语言无关,那么我就不能使用Flex。 Web服务/服务器必须专门为Flex / Flash做好准备。如果不是,则无法消费。

那可能不对吗?

3 个答案:

答案 0 :(得分:1)

如果您的网络服务在另一个域上,则需要一个跨域文件。纯粹而简单。

我找到了两种方法:

  1. 使用HTTPService
  2. 对Flash文件容器页面中嵌入的Javascript使用外部接口调用,然后调用Web服务
  3. 选项2更复杂,但我更喜欢它。此链接可以帮助您使用ExternalInterface类:http://blog.flexexamples.com/2008/03/11/returning-values-from-javascript-in-your-flex-applications-using-the-externalinterface-api/#more-555

答案 1 :(得分:1)

我所做的是“放一个中间人”。所以基本上,我把一个PHP脚本从另一边读取我需要的东西。是的,不幸的是,这需要一个“服务器”。你也可以试试JavaScript。

答案 2 :(得分:1)

使用像Apache或BlazeDS这样的代理服务器将来自SWF发起的主机的请求转发到带有Web服务的主机。