本人电脑mac,装了个windows虚拟机.
要登陆公司内部网址.结果提示“要访问外部数据,请向外部数据web服务器添加一个跨域策略文件”
以前的电脑,以及别人的电脑都可以登陆,可以问题超纲了,需要帮助
一、crossdomain.xml文件的作用
跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如Adobe Flash Player等)设置跨域处理数据的权限。打个比方说,公司A部门有一台公共的电脑,里面存放着一些资料文件,专门供A部门内成员自己使用,这样,A部门内的员工就可以访问该电脑,其他部门人员则不允许访问。如下图:
A部门的员工可以任意访问A部门的公共电脑,但是不能直接访问B部门的公共电脑。有一天,B部门领导觉得他们的资料非常有用,想要与A部门分享,于是就给A部门一个令牌,这样A部门的员工也可以访问B部门的公共电脑了。
换成系统,常见就如同下面所示:
上图是典型的跨域请求,业务服务器向图片服务器上传图片时就涉及到了跨域,要想能正常访问,图片服务器需要给业务服务器设置允许访问的权限。而这个权限设置就是跨域策略文件crossdomain.xml存在的意义。
二、配置规则
site-control
site-control元素用于定义当前域的元策略。元策略则是用于指定可接受的域策略文件,且该文件不同于目标域根元素(名为crossdomain.xml)中的主策略文件。
如果客户端收到指示使用主策略文件以外的策略文件,则该客户端必须首先检查主策略的元策略,以确定请求的策略文件是否获得许可。
属性:
allow-access-from
allow-access-from元素用于授权发出请求的域从目标域中读取数据。可以通过使用通配符(*),为多个域设置访问权限。
属性:
三、匹配规则
举例:
域值匹配不匹配www.example.comhttp://www.example.comhttp://example.com
http://example.com
http://www.example.net*.example.comhttp://example.com
http://www.example.com
http://deep.subdomain.example.comhttp://www.example.nethttp://*.example.comhttp://example.com
http://www.example.com
http://deep.subdomain.example.com所有的https域127.0.0.1http://127.0.0.1http://localhost
http://127.0.0
http://127.0.0.2www.example.*无效的值,不匹配无
示例文件
<?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="master-only"/>
<!-- 允许example.com及其子域访问 -->
<allow-access-from domain="*.example.com"/>
<!-- 允许http://www.example.com访问 -->
<allow-access-from domain="www.example.com"/>
<allow-http-request-headers-from domain="*.csdn.net" headers="*"/>
</cross-domain-policy>
联系公司管理就行了,
如有帮助,请采纳下,谢谢,
你用的是什么虚拟机软件? 我用的是Parallels DeskTop,没有这样的提示
<?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="master-only"/>
<!-- 允许example.com及其子域访问 -->
<allow-access-from domain="*.example.com"/>
<!-- 允许http://www.example.com访问 -->
<allow-access-from domain="www.example.com"/>
<allow-http-request-headers-from domain="*.csdn.net" headers="*"/>
</cross-domain-policy>
服务器跨域问题,一个服务器在当前域名下不能直接跨域请求,在服务器添加允许跨域地址的配置应该就行了
这个系统可能是前端请求数据的,所以浏览器的CORS安全策略拦截了。在那台服务器上配置CORS相关请求头,或者使用动态反代
如果有用点一个采纳
直白点,你想方便点,想一了百了。直接允许所有域名跨域就得了。
文件名:crossdomain.xml,放网站对外访问的根目录中
文件内容:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
下载一个最新的版本较高的浏览器