上传文件的跨域处理(转)
(文章转自: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
上传文件的跨域处理(转)相关推荐
- form上传文件以及跨域异步上传
要设置了enctype属性才能上传,需要使用上传的jar包,这里使用的是cos-26Dec2008.jar, 关于跨域上传文件: 跨域上传文件总会报错,即使服务器端设置了header('Access- ...
- 关于上传文件的跨域问题
在进行新框架开发的过程中,需要自定义页面组件实现脱离表单的文件(图片)上传,考虑过wex5自带的attachmentsimple的自定义写法很难受,就改用了第三方插件webuploader来实现选择文 ...
- SWFUpload上传文件组件,跨域上传文件
转自: http://zhaowenbinmail.blog.163.com/blog/static/3908086201042743942935/ 解决SWFUpload上传文件组件使用时报告204 ...
- 绕过网关访问图片上传并解决跨域问题
绕过网关 图片上传是文件的传输,如果也经过Zuul网关的代理,文件就会经过多次网路传输,造成不必要的网络负担.在高并发时,可能导致网络阻塞,Zuul网关不可用.这样我们的整个系统就瘫痪了. 所以,我们 ...
- jfinal jboot 拦截器过滤文件上传请求 和 跨域解决方法
public class PublicInterceptor implements Interceptor {@Overridepublic void intercept(Invocation inv ...
- 解决H5的a标签的download属性下载service上的文件/图片出现跨域问题
1.通过点击下载多媒体文件(图片/视频/文件等) 最简单的方式: <a href='url' download="filename.ext">下载文件</a> ...
- 阿里云OSS | 对象存储服务快速入门 | 参考官方文档实现使用JavaSDK上传文件 | 本地上传与web上传案例
参考文档 : 点击查看 文章目录 运行环境 一.OSS相关概念 1.1 Storage Class 存储类型 1.2 Bucket 存储空间 1.3 Object 对象 1.4 Region 地域 1 ...
- WebUploader上传文件夹的三种解决方案
本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...
- php js跨域上传文件,Jquery实现跨域异步上传文件步骤详解
这次给大家带来Jquery实现跨域异步上传文件步骤详解,Jquery实现跨域异步上传文件的注意事项有哪些,下面就是实战案例,一起来看一下. 先说明白 这个跨域异步上传功能我们借助了Jquery.for ...
最新文章
- 基于SSL的mysql(MariaDB)主从复制
- 鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂
- 初学python还是swift-Python并不完美,Swift正在成长为深度学习语言 !
- appium的三种等待方式 (还没实践过,记录在此)
- oracle hcm 发展,甲骨文发布Oracle HCM Cloud云服务 呈现三大亮点
- 我的Java开发学习之旅------求字符串中出现次数最多的字符串以及出现的次数...
- CSS 用户界面样式
- 刻录linux-iso至u盘工具,ISO USB刻录工具ISO to USB burning tool V1.5 完美版
- 【Arcgis】球面坐标系转投影坐标
- 调查显示:SD-WAN部署迅猛增长,MPLS不会消失
- 【仿】阿里巴巴首页(未登录)
- 如何应对VB中对象库注册失败(MSCOMCTL.OCX)
- dout java,java-附加到ObjectOutputStream
- Web 2.0概念地图-from Tim Oreilly
- 企业官网小程序搭建教程
- QGIS数据可视化学习笔记00——为什么用QGIS以及QGIS设置中文界面
- 利用python实现3种梯度下降算法
- android studio 使用CMAKE,在terminal终端里敲cmake命令
- Java程序员烂大街了?
- 上汽集团、张江高科和阿里巴巴集团联合打造智己汽车
热门文章
- react学习(54)--注意传递请求
- 前端学习(3130):react-hello-react之回调形式的createRef
- [html] 请说说<script>、<script async>和<script defer>的区别
- 工作48:$emit
- 工作51:后端vue学习地址
- 前端学习(2187):tabber文件引用的问题
- 前端学习(1919)vue之电商管理系统电商系统之用户角色权限的关系
- 前端学习(1803):前端调试之事件伪类练习二
- spring学习(2):初始化spring程序
- 玩转oracle 11g(6): oracle用户管理