CORS:Source.priciple implimentation in Spring

Cors(Cross-origin Resource Sharing)一种跨域访问技术,基本思想是使用自定义的HTTP头部允许浏览器和服务器相互了解对方,从而决定响应成功与否。

CORS与JSONP对比:

1.JSONP只能实现get请求,而CORS支持所有类型的HTTP请求;

2.使用CORS,开发者可以使用普通的XmlHttpRequest发起请求和获得数据,比起JSONP有更好的错误处理;

3.JSONP主要被老的浏览器支持,它们往往不支持CORS,而现在大多数浏览器都已经支持CORS;

CORS浏览器支持情况:

Chrome 3+

  Firefox 3.5+

  Opera 12+

  Safari 4+

  Internet Explorer 8+

    CORS是一种协议,它用来约定服务端和客户端那些行为是被服务端允许的。尽管服务端是可以进行验证和认证的,但基本上这是由客户端浏览器来保证的。这些对行为的允许是放在应答包的header里面的。

  工作原理

    CORS的实现主要包括一些客户端的工作以及两类服务端的处理。

  业务逻辑

  如果origin被服务端允许,服务端返回请求是带有 Access-Controll-Allow-Origin 头, 并且这个头部信息的值和客户端Origin 的值保持一致;否则就表示不被允许。如果 Access-Controll-Allow-Origin 被设置成 "*",则意味着任何Origin都被允许。

  注意:如果所访问的资源需要凭证,那么 Access-Controll-Allow-Origin 则不应该被设置为 "*" 而且 Access-Control-Allow-Credentials 头需要被设置成 true.

原文地址:https://www.cnblogs.com/luv-letter/p/11039556.html