上传文件的跨域处理(转)

  (文章转自: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发中利用strstr()对部分模块回传数据进行解析的问题(坑)

受到以下博文的启发&#xff1a; https://www.cnblogs.com/yup1983/p/11337837.html 验证&#xff1a; 最近通过ESP8266远程控制小车&#xff0c;在wifi回传的数据解析过程中遇到标题所述的烦恼 如上截图所示&#xff0c;数据回传过程中会接受到‘\0’字节对应的ASCII码为0x0…

前端学习(561):解决margin重叠第二种情况父子

第一种方法 第二种方法 第三种方法 第四种方法 第五种方式

HDU 4417 Super Mario

划分树 二分 二分枚举第k小的数与h比较大小。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; const int MAXN 100100; struct Node {int l, r; }T[MAXN << 2];int d[MAXN], s[MAXN]…

python导入模块不在同一文件夹下_Python小技之自定义不同文件夹下模块导入问题...

一般在写一个项目的时候, 为了将项目模块化, 更加的清晰明了, 会将不同功能的模块放入不同的文件夹项目如下:├── spider│ └── spider.py # 爬虫文件└── utils├── __init__.py└── downloads.py # 下载模块downloads.py内容如下:def download():print("im…

[Webapp]国内移动端浏览器占比

1. 国内移动端浏览器占比 Source: StatCounter Global Stats - Mobile Browser Market Share US及IOS、Android自带浏览器占据90%的市场份额 中国各手机浏览器的用户渗透率 2. 源自2012年中国手机浏览器市场集中度较高。源自《中国手机浏览器用户行为研究报告》 根据调查UC…

java比较三个数的编程_java编程基础篇--------- 编写一个程序,从键盘输入三个整数,求三个整数中的最小值。...

编写一个程序,从键盘输入三个整数,求三个整数中的最小值。 关键:声明变量temp 与各数值比较。 package Exam01; import java.util.Scanner; public class Topic03 {public static void main(String[] args) {// TODO Auto-generated method stubint a,b,c; //输入 Scanner…

前端学习(563):干掉block重叠margin重叠

第一种方法 第二种方法 第三种方法 第四种方法

定义线性表

定义线性表转载于:https://www.cnblogs.com/LoveFishC/archive/2012/09/27/3845781.html

64位系统好不好用java_64位系统环境时Java的性能

如果你要买一辆车而且你的首要目标是性能或者更具体的说是原始动力&#xff0c;那么在4缸发动机和8缸发动机之间选择的话&#xff0c;答案很显然&#xff0c;因为越大越好。通常而言&#xff0c;当我们看计算机配置列表或者产品宣传的时候&#xff0c;64位的性能也比32位有优势…

删除重复的数据

delete sfz where sf_id not in( select min(sf_id) as autoID from sfz group by 合同编号,姓名 )转载于:https://www.cnblogs.com/MyBeN/archive/2012/09/27/2705709.html

对lIKE语句的优化

在大表中&#xff0c;进行模糊查询&#xff0c;一般情况下是用LIKE%%,但是这个东西走的是全表扫描&#xff0c;如果在数据量非常大的情况下&#xff0c;效率特别慢&#xff0c;因此&#xff0c;尝试用ORACLE函数INSTR&#xff08;&#xff09;来解决。 实验步骤如下&#xff1a…

java 计算 时间差_Java8 时间差计算

方式一&#xff1a;/*** DateTimeFormatter java 8 线程安全* throws Exception*/Testpublic void testTimeDiff() throws Exception {// DateTimeFormatter formatter DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("Asia/Shanghai…

java spring druid_Spring配置Druid连接池

最近项目用c3p0数据连接池有问题&#xff0c;因此换成了druid连接池&#xff0c;它的优点是可以很好的监控DB池连接和SQL的执行情况。在此做个记录便于下次使用。1、首先导入Spring(网上很多这里我就不列举了)和Druid(druid-1.0.9.jar)的相关jar包2、在web.xml中搭建Spring和Dr…

Ubuntu11.04 3945ABG无线网卡驱动安装

由于对无线上网的需求&#xff0c;特对Ubuntu11.04的无线驱动进行安装&#xff0c;一波三折。 首先是"系统设置"-->"硬件"-->"附加驱动"&#xff0c;显示“这个系统上没有使用专有驱动”&#xff0c;也就是找不到3945ABG无线网卡的驱动。 …

Java获取本地ip方法_Java获取本地IP方法详解

获取本地服务器IP经常会出现127.0.0.1&#xff0c;0:0:0:0:0:0:0:1&#xff0c;fe80:0:0:0:960:74bd:e1a0:e5b9%11 这些情况&#xff0c;以下代码可解决此问题public static void main(String[] args) {try {Enumeration enumeration NetworkInterface.getNetworkInterfaces()…

记录android点滴(一)--通过build.prop实现产品定制的方法

1、通过build.prop实现产品定制的方法&#xff1a; 1&#xff09;以编译模拟器的Generic版本为例&#xff0c;system.prop文件处 于以下位置&#xff08;相对于工程根目录&#xff09;&#xff1a; ./build/target/board/generic/system.prop 里面的内容如下&#xff1a; # # s…