flash上传文件,如何解决跨域问题

时间:2022-08-29 14:28:26

今天同事遇到一个问题,我们有两个应用,一个后台应用,主要用于运营人员编辑文章,发布到官网;一个图片服务器应用,其他很多的应用上传的图片也会存放在这,还对外提供一些查询和管理api。

前者部署在backend.domain.com,后者则部署在picture.domain.com。

后台应用在上传时,用到的上传插件使用的上传技术为flash。

查阅资料后,本地进行测试。

1、我的电脑本地启动picture应用,应用的根目录下放如下配置文件:

flash上传文件,如何解决跨域问题

 

<?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访问,请求终于成功。