http://blog.csdn.net/ohyoyo2014/article/details/24863197

兼容情况:



各种新版本的ie10,firefox,opera,safari,chrome以及移动版safari和android浏览器

ie9及一下版本请使用flash方式来兼容



通过OPTIONS请求握手一次的方式实现跨根域发送请求,需要服务端配置

nginx增加类似如下配置:

[html] view
plain
copy

  1. server {
  2. location / {
  3. if ($request_method = 'OPTIONS') {
  4. add_header 'Access-Control-Allow-Origin' '*';
  5. add_header 'Access-Control-Allow-Credentials' 'true';
  6. add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  7. add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
  8. # add_header 'Access-Control-Max-Age' 1728000;
  9. add_header 'Content-Type' 'text/plain charset=UTF-8';
  10. add_header 'Content-Length' 0;
  11. return 200;
  12. }
  13. }

如果没有nginx转发,java需要如下代码:

[html] view
plain
copy

  1. rundata.getResponse().addHeader("Access-Control-Allow-Origin", "*");
  2. rundata.getResponse().addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  3. rundata.getResponse().addHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");

tomcat下CORS(跨域资源共享) 的配置

CORS介绍

它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。

而W3C的官方文档目前还是工作草案,但是正在朝着W3C推荐的方向前进。

简言之,CORS就是为了让AJAX可以实现可控的跨域访问而生的。



Tomcat下的配置

下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件,放到lib目录下。(可在

http://search.maven.org上查询并下载。)工程项目中web.xml中的配置如下:

[html] view
plain
copy

  1. <filter>
  2. <filter-name>CORS</filter-name>
  3. <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
  4. <init-param>
  5. <param-name>cors.allowOrigin</param-name>
  6. <param-value>*</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>cors.supportedMethods</param-name>
  10. <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
  11. </init-param>
  12. <init-param>
  13. <param-name>cors.supportedHeaders</param-name>
  14. <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
  15. </init-param>
  16. <init-param>
  17. <param-name>cors.exposedHeaders</param-name>
  18. <param-value>Set-Cookie</param-value>
  19. </init-param>
  20. <init-param>
  21. <param-name>cors.supportsCredentials</param-name>
  22. <param-value>true</param-value>
  23. </init-param>
  24. </filter>
  25. <filter-mapping>
  26. <filter-name>CORS</filter-name>
  27. <url-pattern>/*</url-pattern>
  28. </filter-mapping>

http://software.dzhuvinov.com/cors-filter-installation.html

兼容情况:



各种新版本的ie10,firefox,opera,safari,chrome以及移动版safari和android浏览器

ie9及一下版本请使用flash方式来兼容



通过OPTIONS请求握手一次的方式实现跨根域发送请求,需要服务端配置

nginx增加类似如下配置:

[html] view
plain
copy

  1. server {
  2. location / {
  3. if ($request_method = 'OPTIONS') {
  4. add_header 'Access-Control-Allow-Origin' '*';
  5. add_header 'Access-Control-Allow-Credentials' 'true';
  6. add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  7. add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
  8. # add_header 'Access-Control-Max-Age' 1728000;
  9. add_header 'Content-Type' 'text/plain charset=UTF-8';
  10. add_header 'Content-Length' 0;
  11. return 200;
  12. }
  13. }

如果没有nginx转发,java需要如下代码:

[html] view
plain
copy

  1. rundata.getResponse().addHeader("Access-Control-Allow-Origin", "*");
  2. rundata.getResponse().addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  3. rundata.getResponse().addHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");

tomcat下CORS(跨域资源共享) 的配置

CORS介绍

它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。

而W3C的官方文档目前还是工作草案,但是正在朝着W3C推荐的方向前进。

简言之,CORS就是为了让AJAX可以实现可控的跨域访问而生的。



Tomcat下的配置

下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件,放到lib目录下。(可在

http://search.maven.org上查询并下载。)工程项目中web.xml中的配置如下:

[html] view
plain
copy

  1. <filter>
  2. <filter-name>CORS</filter-name>
  3. <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
  4. <init-param>
  5. <param-name>cors.allowOrigin</param-name>
  6. <param-value>*</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>cors.supportedMethods</param-name>
  10. <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
  11. </init-param>
  12. <init-param>
  13. <param-name>cors.supportedHeaders</param-name>
  14. <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
  15. </init-param>
  16. <init-param>
  17. <param-name>cors.exposedHeaders</param-name>
  18. <param-value>Set-Cookie</param-value>
  19. </init-param>
  20. <init-param>
  21. <param-name>cors.supportsCredentials</param-name>
  22. <param-value>true</param-value>
  23. </init-param>
  24. </filter>
  25. <filter-mapping>
  26. <filter-name>CORS</filter-name>
  27. <url-pattern>/*</url-pattern>
  28. </filter-mapping>

http://software.dzhuvinov.com/cors-filter-installation.html

CORS(跨域资源共享) 的配置的更多相关文章

  1. CORS跨域资源共享

    CORS(跨域资源共享)跨域问题及解决 当使用ajax跨域请求时,浏览器报错:XmlHttpRequest error: Origin null is not allowed by Access-Co ...

  2. CORS跨域资源共享你该知道的事儿

    "唠嗑之前,一些客套话" CORS跨域资源共享,这个话题大家一定不陌生了,吃久了大转转公众号的深度技术好文,也该吃点儿小米粥溜溜胃里的缝儿了,今天咱们就再好好屡屡CORS跨域资源共 ...

  3. 在ASP.NET Web API中实现CORS(跨域资源共享)

    默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则. 会遇到如下的报错: XMLHttpRequest cannot load http://local ...

  4. 跨域漏洞丨JSONP和CORS跨域资源共享

    进入正文之前,我们先来解决个小问题,什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 跨域常见的两种方式,分别是JSONP和CORS. 今天i ...

  5. 浅谈跨域问题,CORS跨域资源共享

    1,何为跨域? 在理解跨域问题之前,你先要了解同源策略和URL,简单叙述: 1)同源策略 三同:协议相同,域名相同,端口相同: 目的:保证用户信息安全,防止恶意网站窃取数据.同源策略是必须的,否则co ...

  6. django上课笔记7-jQuery Ajax 和 原生Ajax-伪造的Ajax-三种Ajax上传文件方法-JSONP和CORS跨域资源共享

    一.jQuery Ajax 和 原生Ajax from django.conf.urls import url from django.contrib import admin from app01 ...

  7. tomcat7.0配置CORS(跨域资源共享)

    平时我们做前台页面时可能会遇到浏览器以下提示(浏览器控制台): 已阻止跨源请求:同源策略禁止读取位于 http://xxx.xxx.com 的远程资源.(原因:CORS 头缺少 'Access-Con ...

  8. cors,跨域资源共享,Java配置

    一.概念 1. 如果两个页面的协议.域名和端口是完全相同的,那么它们就是同源的,不同则为跨域 2. ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允 ...

  9. CORS跨域djangosetting.py 配置

    1 什么是 CORS? Cross-Origin Resource Sharing(CORS)跨域资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略 ...

  10. Spring Security (CORS)跨域资源访问配置

    1.CORS介绍 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源(协议 + 域名 + 端口)服务 ...

随机推荐

  1. 关于NSKeyedArchiver的编码格式

    NSKeyedArchiver在linux的实现默认的格式是二进制: NSArray *ary = @[@"hello",@"world",@"!!! ...

  2. SharePoint 2007 文档库中的文档添加评论功能

    背景:接到一个项目,要求文档管理,当然文档库就可以了,但是要求文档需要大家去读,读完以后还可以发表评论,这Moss貌似就有点困难了.和同事一起合计,想来想去也没有太好的办法,后来想到传统开发,两个表的 ...

  3. CRF资料

    与最大熵模型相似,条件随机场(Conditional random fields,CRFs)是一种机器学习模型,在自然语言处理的许多领域(如词性标注.中文分词.命名实体识别等)都有比较好的应用效果.条 ...

  4. 剑指offer面试题48: 最长不含重复字符的子字符串

    Given a string, find the length of the longest substring without repeating characters.(请从子字符串中找出一个最长 ...

  5. javascript简单介绍

    ECMAScript 1.语法 2.变量:只能使用var定义,如果在函数的内容使用var定义,那么它是一个局部变量,如果没有使用var它是一个全局的.弱类型! 3.数据类型:原始数据类型(undefi ...

  6. spring是如何管理 事务的

    Spring提供的事务管理可以分为两类:编程式的和声明式的.编程式的,比较灵活,但是代码量大,存在重复的代码比较多:声明式的比编程式的更灵活方便.  1.传统使用JDBC的事务管理  以往使用JDBC ...

  7. vue-cli目录结构

  8. Java面向对象进阶篇(包装类,不可变类)

    一. Java 8的包装类 Java中的8种基本数据类型不支持面向对象的变成机制,也不具备对象的特性:没有成员变量,方法可以调用.为此,Java为这8 种基本数据类型分别提供了对应的 包装类(Byte ...

  9. java使用Myeclipse创建Hibernate项目碰到的诸多问题总结

    这两天一直在搞Myeclipse创建Hibernate的1对多映射. 由于缺乏经验,可算是把我坑惨了.控制台是不停地报错啊~~~~我差点就崩溃了. 1.看的是慕课网的Hibernate一对多映射教程, ...

  10. Python的易错点

    一.列表和元组的区别 列表是允许修改的,而元组是不能修改的,元组只能实现拼接,形成一个新的元组.两者可以实现相互转换,列表转换成元组使用truple函数,而元组转换成列表使用list函数. 二.Raw ...