(文章转自:http://blog.robotercoding.com/?p=62)

为了减轻主服务器的负担,希望把图片的处理单独拿出来,由图片服务器来处理图片上传,浏览等操作。图片上传使用了ajax方式,采用了ajaxfileupload控件,它动态生成了一个iframe,由iframe来接受上传结果。以前的操作都在www.***.com上处理,这个控件用得不错,分开之后,由img.***.com来负责上传,结果问题就来了,iframe的contentWindow以及contentDocument下面的document拒绝访问。google之后,发现应该是跨域问题,按照道理来说,两个子域的跨域应该很好解决。无非是设置document.domain,主页面中如下设置:

<script language=”text/javascript”>
document.domain = “***.com”;
</script>

在iframe中的onload事件函数中,也设置了document.domain = “***.com”;测试了一下,行不通,还是会报“拒绝访问”,虽然Firebug已经看到了返回值。对javascript不是很熟悉,不知道iframe中这样设置document.domain是否合法。

然后再google了一堆资料,针对跨域的处理有很多方式:jquery的jsonp技术,动态地添加一个<script>标签,因为script标签的src属性是没有跨域的限制,但是好像只能get,不支持post。还有通过服务器中转,数据先到达www.***.com,由www服务器发送到img服务器进行处理,这样也没有问题,但是数据绕了一圈,费时费力。

这个时候想起了nginx的代理设置,是否能够将www服务器的目录映射成img服务器呢?我想应该可以的,那就尝试一下。

首先给ubuntu装上dns服务器,可以模拟这些域名进行测试。然后配置nginx如下:

upstream hosts_www_com {
server 192.168.1.2:80;
}
server {
listen       80;
server_name  www.***.com;

access_log  /var/log/nginx/***.host.access.log;

location ~ ^/imgupload/ {
proxy_pass        http://192.168.1.129; #图片服务器的ip
proxy_set_header  X-Real-IP  $remote_addr;

proxy_redirect off;

}

location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass http://hosts_www_com;
proxy_set_header  x-real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

然后再测试一下,OK了。

update:

django中跨域读取cookie,可以直接设置

SESSION_COOKIE_DOMAIN = ‘.abc.com’

注意前缀一定要有点(.)

转载于:https://www.cnblogs.com/Deasel-s-magic-box/archive/2012/09/20/2695288.html

上传文件的跨域处理(转)相关推荐

  1. form上传文件以及跨域异步上传

    要设置了enctype属性才能上传,需要使用上传的jar包,这里使用的是cos-26Dec2008.jar, 关于跨域上传文件: 跨域上传文件总会报错,即使服务器端设置了header('Access- ...

  2. 关于上传文件的跨域问题

    在进行新框架开发的过程中,需要自定义页面组件实现脱离表单的文件(图片)上传,考虑过wex5自带的attachmentsimple的自定义写法很难受,就改用了第三方插件webuploader来实现选择文 ...

  3. SWFUpload上传文件组件,跨域上传文件

    转自: http://zhaowenbinmail.blog.163.com/blog/static/3908086201042743942935/ 解决SWFUpload上传文件组件使用时报告204 ...

  4. 绕过网关访问图片上传并解决跨域问题

    绕过网关 图片上传是文件的传输,如果也经过Zuul网关的代理,文件就会经过多次网路传输,造成不必要的网络负担.在高并发时,可能导致网络阻塞,Zuul网关不可用.这样我们的整个系统就瘫痪了. 所以,我们 ...

  5. jfinal jboot 拦截器过滤文件上传请求 和 跨域解决方法

    public class PublicInterceptor implements Interceptor {@Overridepublic void intercept(Invocation inv ...

  6. 解决H5的a标签的download属性下载service上的文件/图片出现跨域问题

    1.通过点击下载多媒体文件(图片/视频/文件等) 最简单的方式: <a href='url' download="filename.ext">下载文件</a> ...

  7. 阿里云OSS | 对象存储服务快速入门 | 参考官方文档实现使用JavaSDK上传文件 | 本地上传与web上传案例

    参考文档 : 点击查看 文章目录 运行环境 一.OSS相关概念 1.1 Storage Class 存储类型 1.2 Bucket 存储空间 1.3 Object 对象 1.4 Region 地域 1 ...

  8. WebUploader上传文件夹的三种解决方案

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  9. php js跨域上传文件,Jquery实现跨域异步上传文件步骤详解

    这次给大家带来Jquery实现跨域异步上传文件步骤详解,Jquery实现跨域异步上传文件的注意事项有哪些,下面就是实战案例,一起来看一下. 先说明白 这个跨域异步上传功能我们借助了Jquery.for ...

最新文章

  1. 基于SSL的mysql(MariaDB)主从复制
  2. 鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂
  3. 初学python还是swift-Python并不完美,Swift正在成长为深度学习语言 !
  4. appium的三种等待方式 (还没实践过,记录在此)
  5. oracle hcm 发展,甲骨文发布Oracle HCM Cloud云服务 呈现三大亮点
  6. 我的Java开发学习之旅------求字符串中出现次数最多的字符串以及出现的次数...
  7. CSS 用户界面样式
  8. 刻录linux-iso至u盘工具,ISO USB刻录工具ISO to USB burning tool V1.5 完美版
  9. 【Arcgis】球面坐标系转投影坐标
  10. 调查显示:SD-WAN部署迅猛增长,MPLS不会消失
  11. 【仿】阿里巴巴首页(未登录)
  12. 如何应对VB中对象库注册失败(MSCOMCTL.OCX)
  13. dout java,java-附加到ObjectOutputStream
  14. Web 2.0概念地图-from Tim Oreilly
  15. 企业官网小程序搭建教程
  16. QGIS数据可视化学习笔记00——为什么用QGIS以及QGIS设置中文界面
  17. 利用python实现3种梯度下降算法
  18. android studio 使用CMAKE,在terminal终端里敲cmake命令
  19. Java程序员烂大街了?
  20. 上汽集团、张江高科和阿里巴巴集团联合打造智己汽车

热门文章

  1. react学习(54)--注意传递请求
  2. 前端学习(3130):react-hello-react之回调形式的createRef
  3. [html] 请说说<script>、<script async>和<script defer>的区别
  4. 工作48:$emit
  5. 工作51:后端vue学习地址
  6. 前端学习(2187):tabber文件引用的问题
  7. 前端学习(1919)vue之电商管理系统电商系统之用户角色权限的关系
  8. 前端学习(1803):前端调试之事件伪类练习二
  9. spring学习(2):初始化spring程序
  10. 玩转oracle 11g(6): oracle用户管理