今天同事遇到一个问题,我们有两个应用,一个后台应用,主要用于运营人员编辑文章,发布到官网;一个图片服务器应用,其他很多的应用上传的图片也会存放在这,还对外提供一些查询和管理api。
前者部署在backend.domain.com,后者则部署在picture.domain.com。
后台应用在上传时,用到的上传插件使用的上传技术为flash。
查阅资料后,本地进行测试。
1、我的电脑本地启动picture应用,应用的根目录下放如下配置文件:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="192.168.2.18" />
<!--<allow-access-from domain="*" />-->
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
2、结果:访问请求进不来。
3、修改文件内容为:
<?xml version="1.0"?>
<cross-domain-policy>
<!--<allow-access-from domain="192.168.2.18" />-->
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
4、访问正常。
5、本地断点查看请求时,发现
String referer = request.getHeader("referer");
得到的结果为http://localhost/*****,于是感觉可能是因为同事在他本地用localhost访问的锅。
让同事在他本地浏览器不要用localhost访问,改为用他自己的局域网ip访问,请求终于成功。