关于faultString = "Security error accessing url" 问题解决总结
来源:互联网 发布:淘宝权重怎么做上去 编辑:程序博客网 时间:2024/05/16 14:43
1 FLEX HttpService错误
[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as:220]
at mx.rpc::Responder/fault()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/rpc/Responder.as:53]
at mx.rpc::AsyncRequest/fault()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as:103]
at DirectHTTPMessageResponder/securityErrorHandler()[C:/autobuild/3.2.0/frameworks/projects/rpc/src/mx/messaging/channels/DirectHTTPChannel.as:389]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/redirectEvent()
关于策略文件的格式(可以在Flash CS3帮助里面的Flash Player安全性——》控制权限概述中找到)
1、针对web应用的策略文件
下面的示例显示了一个策略文件,该文件允许访问源自 *.iflashigame.com 和 192.0.34.166 的 SWF 文件。
<?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*.iflashigame.com" /> <allow-access-from domain="192.0.34.166" /> </cross-domain-policy> 注意事项:
默认情况下,策略文件必须命名为 crossdomain.xml,并且必须位于服务器的根目录中。但是,SWF 文件可以通过调用 Security.loadPolicyFile() 方法检查是否为其它名称或位于其它目录中。跨域策略文件仅适用于从其中加载该文件的目录及其子目录。因此,根目录中的策略文件适用于整个服务器,但是从任意子目录加载的策略文件仅适用于该目录及其子目录。
策略文件仅影响对其所在特定服务器的访问。例如,位于 https://www.adobe.com:8080/crossdomain.xml 的策略文件只适用于在端口 8080 通过 HTTPS 对 www.adobe.com 进行的数据加载调用。
2、针对Socket的策略文件
<cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.example.com" to-ports="507,516" /> <allow-access-from domain="*.example2.com" to-ports="516-523" /> <allow-access-from domain="www.example2.com" to-ports="507,516-523" /> <allow-access-from domain="www.example3.com" to-ports="*" /> </cross-domain-policy> 这个策略文件是指定允许哪些域的主机通过那些端口链接。
现象:
跨域访问时,出现如下错误:
[FaultEvent fault=[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"] messageId="30264797-379F-313E-3D8A-B7ADD21393B5" type="fault" bubbles=false cancelable=true eventPhase=2]
解决办法:
<?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="*" secure="true" /> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy>
swf文件跨域访问的时候,会报以下错误:
[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()
at mx.rpc::Responder/fault()
at mx.rpc::AsyncRequest/fault()
at DirectHTTPMessageResponder/securityErrorHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/redirectEvent()
解决办法是在webservice(或者httpservice)所在网站的根目录下建立一个名为crossdomain.xml的文件,内容如下:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
其中的*符号可以根据你的实际需要设置,表示允许访问该域的域名,比如只允许来自chenfeisoft.com的页面访问,可以设置如下:
<cross-domain-policy>
<allow-access-from domain="*.chenfeisoft.com" />
<allow-http-request-headers-from domain="*.chenfeisoft.com" headers="*"/>
</cross-domain-policy>
如果你要带调用的webservice不在自己可以控制的服务器上,还可以用javascript写一个本地代理来访问,比如proxy.asp
<%@LANGUAGE="JSCRIPT" CODEPAGE="65001"%>
<%
with (Response) {
Charset = "utf-8";
Buffer = true;
Expires = -10;
}
function Proxy (url) {
this.url = url;
this.write = function () {
if (url.length == 0 || url == undefined)
error("URL 不能为空");
var x = new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET", this.url, false);
x.send();
Response.Write(x.responseText);
x = null;
}
function error (message) {
Response.Write(message);
Response.End();
}
}
var proxy = new Proxy( String(Request.QueryString) );
proxy.write();
%>
可以通过www.yourdonmain.com/proxy.asp?http://www.destination.com/service.xml来访问
转载:http://blog.csdn.net/feitianfjl/article/details/5838330
[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E:\dev\hero_private\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:345]
活到老,学到老!
最近研究flex+mysql+php通讯,今天在测试时 遇到个问题就是以上的错误,仔细一看原来是域问题,
难怪配置了PHP默认地址到flex做数据源运行要报错,网上查了下资料有叫做xml的,还有就是些其他的办法,但只是个demo没必要整得那么复杂。
打开flex4.5的 运行配置 修改URL路径为IP(非127.0.0.1 和localhost)
转载:http://blog.sina.com.cn/s/blog_735cd12d0100u1fn.html
实际处理中,如果放了策略文件还是报错,处理这个域问题,还需要仔细确认请求地址是否合法有效。比如请求地址是否少了www,或者重置了地址等等。
- 关于faultString = "Security error accessing url" 问题解决总结
- faultString = "Security error accessing url" 问题的解决办法
- flex报错:Security error accessing url 最简单解决办法
- error: The requested URL returned error: 401 Unauthorized while accessing
- ERROR security.UserGroupInformation: PriviledgedActionException 问题解决
- [RPC Fault faultString="Error #2032: 流错误...](学习笔记)
- [RPC Fault faultString="Error #2032: 流错误...](学习笔记)
- The requested URL returned error:406 while accessing https
- 【hadoop】关于ERROR security.UserGroupInformation
- "error: The requested URL returned error: 403 Forbidden while accessing“(git错误)
- 解决git提交问题error: The requested URL returned error: 403 Forbidden while accessing
- error: The requested URL returned error: 403 while accessing https://jacsice@github.com/jacsice/hous
- error: The requested URL returned error: 403 Forbidden while accessing https://github.com/blah/blahb
- error: The requested URL returned error: 403 Forbidden while accessing https://github.com/blah/blah
- git clone error: The requested URL returned error: 401 Unauthorized while accessing
- error: The requested URL returned error: 403 Forbidden while accessing https
- git clone error: The requested URL returned error: 403 Forbidden while accessing.
- 解决报错:error: The requested URL returned error: 401 Unauthorized while accessing
- Java 定时器 5秒钟后自动退出
- AutomanX 学习日志(2)
- android 中 Proguard 使用(收藏) .
- 差分信号的好处
- maven 常用命令
- 关于faultString = "Security error accessing url" 问题解决总结
- 有感地震:Android智能机将进军企业市场
- java socket 编程(Client)
- Java路径问题解决方案汇集
- requestWindowFeature使用详解
- 浅谈Volatile与多线程
- Overview of UIKit Classes
- 系统权限设计
- JDBC学习笔记