最近编写FLEX调用HTTPSERVICE在本地可以,在服务器上出现
httpservice出现channel.security.error错误
查询网络资源,增加了策略文件 crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access- domain="*"/>
</cross-domain-policy>
放到http服务下,还是不行。最后查资料,发现策略文件还要加一句
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access- domain="*"/>
<allow-http-request-headers- domain="*" headers="*"/>
</cross-domain-policy>
关于crossdomain.xml的放置目次题目,有如下解决规划,可放置在:
1/ 若是这个目次是容器的根目次,可以经由过程以下的url接见crossdomain.xml:
http://localhost:8080/crossdomain.xml 。
2/ 若是crossdomain.xml不是放在根目次下,而是在某个webapp下面,在flex中就须要在初始化的时辰应用
Security.loadPolicyFile("http:// localhost:8080/direc/crossdomain.xml");
此中direc是webapp的名称。
如许,外部Flex接见该办事公布的WebService时,flashplayer起首找的就是crossdomain.xml文件,若安然机制设置为容许接见,则接见成功。