http://software.dzhuvinov.com/cors-filter-installation.html
nginx兼容跨域上传
兼容情况:
各种新版本的ie10,firefox,opera,safari,chrome以及移动版safari和android浏览器
ie9及一下版本请使用flash方式来兼容
通过OPTIONS请求握手一次的方式实现跨根域发送请求,需要服务端配置
nginx增加类似如下配置:
- server {
- location / {
- if ($request_method = 'OPTIONS') {
- add_header 'Access-Control-Allow-Origin' '*';
- add_header 'Access-Control-Allow-Credentials' 'true';
- add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
- add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
- # add_header 'Access-Control-Max-Age' 1728000;
- add_header 'Content-Type' 'text/plain charset=UTF-8';
- add_header 'Content-Length' 0;
- return 200;
- }
- }
如果没有nginx转发,java需要如下代码:
- rundata.getResponse().addHeader("Access-Control-Allow-Origin", "*");
- rundata.getResponse().addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
- 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中的配置如下:
- <filter>
- <filter-name>CORS</filter-name>
- <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
- <init-param>
- <param-name>cors.allowOrigin</param-name>
- <param-value>*</param-value>
- </init-param>
- <init-param>
- <param-name>cors.supportedMethods</param-name>
- <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
- </init-param>
- <init-param>
- <param-name>cors.supportedHeaders</param-name>
- <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
- </init-param>
- <init-param>
- <param-name>cors.exposedHeaders</param-name>
- <param-value>Set-Cookie</param-value>
- </init-param>
- <init-param>
- <param-name>cors.supportsCredentials</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>CORS</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
http://software.dzhuvinov.com/cors-filter-installation.html
相关推荐
主要介绍了Apache中配置支持CORS(跨域资源共享)实例,本文给出了一个完整的apache、PHP、JavaScript结合实现的跨域资源共享实例,需要的朋友可以参考下
tomcat解决跨域访问问题,具体配置如下: 1、修改tomcat下的Conf/web.xml文件,在该文件内容中新增以下配置,注意,若该web.xml中存在其它filter,则需要将该filter放在所有filter前面; <filter-name>...
主要介绍了Spring Boot 通过CORS实现跨域,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
最全面关于J2EE跨域资源共享的解决方案以及所需要依赖的Jar包,cors-filter-1.7.jar,java-property-utils-1.9.jar, tomcat配置方法连接 http://bsxsb.com/index.php/2015/08/07/tomcat下通过cors实现跨域配置/
public class CorsConfig {public CorsConfig() { }// 1. 添加cors配置信息// 设置是否发送cookie信
一般来说,与后台利用CORS跨域资源共享将Access-Control-Allow-Origin设置为访问的域名即可,这个需要后台的配合,且有些浏览器是不支持的。 基于与合作方后台的配合,利用nginx方向代理来满足浏览器的同源策略来...
CORS(Cross-origin resource sharing)是一个W3C标准,翻译过来就是 “跨域资源共享”,它主要是解决Ajax跨域限制的问题。 CORS需要浏览器和服务器支持,现在所有现代浏览器都支持这一特性。注:IE10及以上 只要...
SplashLab的Magento 2 CORS跨域请求通过添加适当的HTTP标头并处理飞行前OPTIONS请求,该模块允许您在Magento 2中启用跨域资源共享(CORS)REST API请求。 这可用于允许AJAX和其他请求从另一个域(或子域)对Magento ...
启用跨域资源共享(CORS) 笔记该存储库包含指南文档源。 要以已发布的形式查看该指南,请在上进行查看。 了解如何在Open Liberty中启用跨源资源共享(CORS),而无需编写Java代码。您将学到什么您将学习如何添加两...
Tomcat下的配置“跨域资源共享”,所需要的CORS,cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件
它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互...
CORS(跨域资源共享)配置jar包 cors-filter-1.7.jar,java-property-utils-1.9.jar
跨域资源共享CORS(Cross-Origin Resource Sharing)是目前解决跨域资源访问的最为正规的方案,也得到了所有主流浏览器、许多热门Web网站的支持。该报告发现CORS的设计、实现与现实网络中的配置都存在大量的安全问题...
本资源主要演示了Spring Boot 如何全局配置跨域资源共享。本资源解压后包含2个文件夹:blog2和testFrontEnd。blog2是后端java代码项目,由Maven构建。testFrontEnd是前端项目,测试了能否正常使用跨域的Web API。
由于跨域问题,Servlet代理涉及跨域资源共享(CORS)的请求。 一些浏览器没有完全实现CORS,这会导致访问资源的问题,这些事件需要发送cookie来标识会话。 该servlet将为真正的服务提供代理。 安装方式 安装包括...
CORS代表跨域资源共享。 但这到底是什么意思? 简而言之,任何时候在一个站点上运行的客户端应用程序从另一个站点请求资源(图像,脚本,json文件等)时,该请求都是跨域的。 随着Web应用程序变得越来越复杂,站点...
用于启用跨域资源共享(CORS)的简单Sinatra扩展要查看有关跨域资源共享的更多信息,请参阅 使用捆绑器安装 gem "sinatra-cross_origin", "~> 0.3.1" 例子 要为所有路由启用跨源请求: require 'sinatra' require...
CORS策略可让您为使用者管理“跨域资源共享”标头。 这是W3C建议的严格实现。 您也可以访问网站以获取CORS概述。 此策略替代了后端API的CORS管理。 因此,在进行预检请求( OPTIONS请求)的情况下,永远不会调用...
原来在 CORS-跨域资源共享 中,可以使用 OPTIONS 方法发起一个预检请求,以检测实际请求是否可以被服务器所接受。预检请求报文中的 Access-Control-Request-Method 首部字段告知服务器实际请求所使用的 HTTP 方法;...