跨源资源共享(CORS)
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
跨源资源共享
跨源 HTTP 请求的一个例子:运行在
https://domain-a.comXMLHttpRequesthttps://domain-b.com/data.json
出于安全性,浏览器限制脚本内发起的跨源 HTTP 请求。 例如,
XMLHttpRequest
跨源域资源共享(CORS)机制允许 Web 应用服务器进行跨源访问控制,从而使跨源数据传输得以安全进行。现代浏览器支持在 API 容器中(例如
XMLHttpRequest
客户端和服务器之间使用 CORS 首部字段来处理权限:
以下是浏览器发送给服务器的请求报文:
GET /resources/public-data/ HTTP/1.1 Host: bar.other User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:71.0) Gecko/20100101 Firefox/71.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Connection: keep-alive Origin: https://foo.example请求首部字段 Origin 表明该请求来源于 http://foo.example
HTTP/1.1 200 OK Date: Mon, 01 Dec 2008 00:23:53 GMT Server: Apache/2 Access-Control-Allow-Origin: * Keep-Alive: timeout=2, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: application/xml [XML Data]本例中,服务端返回的
表明,该资源可以被 任意 外域访问。 Access-Control-Allow-Origin: *Access-Control-Allow-Origin: *使用
和 Origin就能完成最简单的访问控制。如果服务端仅允许来自 Access-Control-Allow-Origin的访问,该首部字段的内容如下: https://foo.exampleAccess-Control-Allow-Origin: https://foo.example