最近在用Flex做一个项目,在本机调试一切正常,传到服务器上之后出现如下错误:
[RPC Fault faultString="Security error accessing url"
faultCode="Channel.Security.Error"
faultDetail="Unable to load WSDL.
查明是swf文件跨域访问安全机制的问题,最简单的解决办法就是在所调用的webservice服务器的根目录上加上一个策略文件,默认名为crossdomain.xml内容如下:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
同样也可以在代码中调用
flash.system.Security.loadPolicyFile(http://mydomain/crossdomain.xml);方法来加载策略文件。加上策略文件之后,以为这下应该没有可以了,但不幸的是又出现新的错误,这次错误信息有所不同,但同样和跨域访问有关系,错误如下:
[RPC Fault faultString="Security error accessing url"
faultCode="Channel.Security.Error"
faultDetail="Destination: DefaultHTTP"]
最后发现是flash播放器版本更新成9.0.124之后,对安全方面有很多的改变,所以造成了这种错误的出现,解决办法也很简单,在原来的crossdomain.xml文件中加入以下代码即可
<allow-http-request-headers-from domain="*" headers="*"/>
关于flash player 9.0.124版本的安全方面的改变可以以下参考adobe的文档
http://www.adobe.com/devnet/flashplayer/articles/flash_player9_security_update.html
http://kb.adobe.com/selfservice/viewContent.do?externalId=kb403185&sliceId=2
分享到:
相关推荐
eclipse环境下集成flex之后调用webservice的相关资源
eclipse和flex集成环境下的
eclipse和flex集成环境下的
在Flex中,我们可以使用WebService组件来连接和调用Web服务。这个组件提供了与ASMX、WSDL等不同类型的Web服务接口的交互能力。首先,我们需要在Flex项目中导入Web服务的WSDL(Web Service Description Language)...
在Flex中,我们通常使用Service组件(如RemoteObject、WebService或HTTPService)来调用Java后台服务。这些服务组件可以配置到特定的URL,处理HTTP请求和响应,将AMF数据转换为Flex可以理解的对象。 5. **Java ...
使用Flex的WebService或HTTPService组件可以轻松实现这一过程。 4. **数据模型与服务**:在Flex中,数据模型通常由ActionScript类表示,这些类对应于Java对象。通过AMF,这些对象可以被序列化并在客户端和服务器...
Flex的RemoteObject和WebService组件可以方便地处理这些格式的数据。 6. **安全性:** 为了确保通信安全,可以使用HTTPS协议,以及Java的安全框架来实现身份验证和授权。 7. **部署与调试:** Flex应用可以作为...
在Flex应用中集成Hessian,开发者可以实现跨域的服务调用,让Flex客户端能够与Java、PHP、.NET等后端服务器进行通信。Hessian的优势在于其简洁的二进制格式,比XML-RPC或SOAP等基于文本的协议更为高效。 "source...
HTTPService和WebService适用于传输少量数据,如用户输入验证或简单的查询请求,它们基于HTTP协议进行通信,易于跨域访问,且兼容性良好。RemoteObject则是用于处理大量数据传输,例如数据库记录的读写操作,它利用...
当不使用AMF时,Flex可以借助HTTPService或WebService组件与Java进行XML或JSON数据交换。这种方式适用于跨域通信,但相比AMF,数据传输效率较低。 5. Flex客户端实现: 在Flex项目中,使用HTTPService或Web...
例如,可以使用`RemoteObject`或`WebService`组件来调用后端的Java方法,这些方法可以执行SQL查询。 5. 连接配置:在描述中提到的文件如`newScript.as`, `personScript.as`, `personconfig.as`, `newconfig.as`可能...
在实践中,开发者通常会创建一个C# Web服务(如ASP.NET Web API或WCF服务),定义服务接口和操作,然后在Flex端使用HTTPService或WebService组件调用这些服务。通过设置适当的服务地址、方法名和参数,可以实现数据...
- **Flex与Spring集成**:Flex与Spring之间的通信通常通过HTTPService或WebService组件完成,这些组件可以调用Spring的远程服务接口(如基于HTTP的RESTful服务或基于SOAP的Web服务)。Spring-BlazeDS Integration...
在Flex中,你可以创建一个`RemoteObject`实例,配置其`endpoint`指向这个Java服务,然后调用服务中的方法,如`queryDatabase`,以执行数据库查询。 ```actionscript var remoteObject:RemoteObject = new ...
20.3节在Flex里面调用JavaScript函数方法 20.4节在JavaScript中调用ActionScript方法函数 20.5节经由BrowserManager改变HTML页面标题 20.6节BrowserManager解析URL 20.7节经由BrowserManager深度-链接到数据 20.8节...
HTTPService、WebService和RemoteObject控件分别支持HTTP GET/POST、SOAP和Java对象的调用,同时RemoteObject控件能实现企业级功能,如跨域数据交换、认证、日志记录等,无需复杂的SOAP配置。 2. Messaging ...
- **HTTPService与WebService**:通过HTTPService调用外部的Web服务,获取额外的数据或功能。 - **RemoteObject与BlazeDS**:利用BlazeDS技术实现实时通信,支持高级数据传输。 - **通过BlazeDS调用AO**:通过...