博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域访问技术CORS(Cross-Origin Resource Sharing)简介
阅读量:6155 次
发布时间:2019-06-21

本文共 1850 字,大约阅读时间需要 6 分钟。

为什么要用CORS?

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。

它允许浏览器向跨源服务器,发出请求,从而克服了AJAX只能使用的限制。

首先需要明白什么是Same-origin Policy呢?

  简单地说,在一个浏览器中访问的网站不能访问另一个网站中的数据,除非这两个网站具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。但是这个限制的确过于严格了:一个大型网站常常拥有一系列子域。在这些域之间交换数据就会受到Same-origin Policy的限制。为了绕过该限制,业界提出了一系列解决该问题的方法,例如更改document.domain属性,跨文档消息,JSONP以及CORS等。这些解决方案各有各的长处,因此我们需要根据需求的不同来对这些方案进行选择。

  相较于这些方法,CORS则没有那么多工作需要去做,也没有那么多限制。

CORS原理:

 

1、两种请求

浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。

只要同时满足以下两大条件,就属于简单请求。

 (1) 请求方法是以下三种方法之一: HEAD GET POST

 (2)HTTP的头信息不超出以下几种字段: Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

 2、使用

这种方法跟框架无关了,需要两个jar包,点击进行下载,两个jar包可以放的程序里,也可以放到tomcat中,然后将下面的配置写到web.xml中就可以了

< filter >        < filter-name > CORS 
< filter-class > com.thetransactioncompany.cors.CORSFilter
< init-param > < param-name > cors.allowOrigin
< param-value > *
< init-param > < param-name > cors.supportedMethods
< param-value > GET, POST, HEAD, PUT, DELETE
< init-param > < param-name > cors.supportedHeaders
< param-value > Accept, Origin, X-Requested-With, Content-Type, Last-Modified
< init-param > < param-name > cors.exposedHeaders
< param-value > Set-Cookie
< init-param > < param-name > cors.supportsCredentials
< param-value > true
< filter-mapping > < filter-name > CORS
< url-pattern > /*

 

转载于:https://www.cnblogs.com/sensenma533/p/10665613.html

你可能感兴趣的文章
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>
mysql内存优化
查看>>
都市求生日记第一篇
查看>>
Java集合---HashMap源码剖析
查看>>
SQL优化技巧
查看>>
thead 固定,tbody 超出滚动(附带改变滚动条样式)
查看>>
Dijkstra算法
查看>>
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>
MySQL数据类型--与MySQL零距离接触2-11MySQL自动编号
查看>>