CORS (Cross-Origin Resource Sharing,跨域资源共享)

术语:

  1. 源(Origin)
    三元组:

    • 方案(协议)
    • 主机(域名)
    • 端口

    MDN:https://developer.mozilla.org/zh-CN/docs/Glossary/源

  2. 同源策略(Same-origin_policy)
    同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。
    MDN:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

  3. 跨域资源共享(Cross-Origin Resource Sharing)
    跨域资源共享是一个系统,它由一系列传输的 HTTP 头组成,这些 HTTP 头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。
    同源安全策略默认阻止“跨域”获取资源。但是 CORS 给了 web 服务器这样的权限,即服务器可以选择,允许跨域请求访问到它们的资源。
    MDN:https://developer.mozilla.org/zh-CN/docs/Glossary/CORS

示意图及 HTTP 交互过程:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

Java 后端支持 CORS:

  1. 自定义 Web 应用的 Filter,根据要求在 HTTP Response 中添加 CORS Header
  2. Spring MVC 也提供了 CORS 的支持
    @CrossOrigin注解等

参考:

原文地址:https://www.cnblogs.com/magexi/p/12667103.html