要点摘录:
跨域资源共享(CORS)机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。浏览器支持在 API 容器中(例如XMLHttpRequest或Fetch)使用 CORS,以降低跨域 HTTP 请求所带来的风险。
CORS 需要客户端和服务器同时支持。目前,所有浏览器都支持该机制。
对服务器数据产生副作用的 HTTP 请求方法(特别是GET以外的 HTTP 请求,或者搭配某些 MIME 类型的POST请求):
1.浏览器必须首先使用OPTIONS方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨域请求
2.服务器确认允许之后,才发起实际的 HTTP 请求。
3.在预检请求的返回中,服务器端也可以通知客户端,是否需要携带身份凭证(包括Cookies和 HTTP 认证相关数据)。