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. Hbase节点管理

    1.退役节点 (1) shell>balance_switch false 然后,hbase-daemon.sh stop regionserver (2) graceful_stop.sh U ...

  2. OpenCV——颜色运算

    #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <iostream> #include & ...

  3. Leetcode(59)-Count Primes

    题目: Description: Count the number of prime numbers less than a non-negative number, n. 思路: 题意:求小于给定非 ...

  4. zookeeper 分布式管理

    分布式框架: Zookeeper与paxos算法 一.            zookeeper是什么 官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是 ...

  5. IT实用技术资源整理

    花了一下午整理出了常用的且比较实用的网站,以及一些收藏的资源,希望对大家有帮助! 常用技术资料 Python中文开发者社区 Python中文官方文档 开源中国社区 Python机器学习 jmeter插 ...

  6. python 之路,200行Python代码写了个打飞机游戏!

    早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序. 很有意思,跟大家分享下. 先看一下项目结构 "" ...

  7. SpringMVC:数据绑定入门(二)

    1.为了实现所输入的数据格式与所需要的匹配该如何做到?例如:http://localhost:8080/date1.do?date1=2018-01-01,其中输入的date1的数据类型为一个格式为& ...

  8. HDU-5705

    Clock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Problem De ...

  9. ThinkPHP5从零基础搭建CMS系统(一)

    了解学习thinkphp5应该是2016年年底的事情,当时还没有接触过thinkphp3版本,觉得通过手册直接上手学习tp5蛮轻松的,现在从零记录下,搭建可扩展的CMS. 1.ThinkPHP环境搭建 ...

  10. Niop2017初赛滚粗记

    初赛踢蹬滚粗 TOT (╯°Д°)╯︵┻━┻ ヽ(`Д´)ノ︵ ┻━┻ ┻━┻ 排序啊排序,净是排序,自打我学了C++就再没学过排序!!wtf! (╯°Д°)╯︵ /(.□ . )我tm怎么知道建国那 ...