blob: 410b9c9a72150f02ce14ea754a65c093b0e88ddb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
---
title: CORS
slug: Glossary/CORS
tags:
- CORS
- Security
translation_of: Glossary/CORS
---
<p><strong>CORS </strong>(Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的{{Glossary("Header", "HTTP头")}}组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。</p>
<p><a href="/zh-CN/docs/Web/Security/Same-origin_policy">同源安全策略</a> 默认阻止“跨域”获取资源。但是 CORS 给了web服务器这样的权限,即服务器可以选择,允许跨域请求访问到它们的资源。</p>
<h2 id="了解更多">了解更多</h2>
<h3 id="总体了解">总体了解</h3>
<ul>
<li>MDN上的 <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">Cross-Origin Resource Sharing (CORS)</a></li>
<li>维基百科上的 {{Interwiki("wikipedia", "Cross-origin resource sharing")}}</li>
</ul>
<h3 id="CORS_头">CORS 头</h3>
<dl>
<dt>{{HTTPHeader("Access-Control-Allow-Origin")}}</dt>
<dd>指示请求的资源能共享给哪些域。</dd>
<dt>{{HTTPHeader("Access-Control-Allow-Credentials")}}</dt>
<dd>指示当请求的凭证标记为 true 时,是否响应该请求。</dd>
<dt>{{HTTPHeader("Access-Control-Allow-Headers")}}</dt>
<dd>用在对预请求的响应中,指示实际的请求中可以使用哪些 HTTP 头。</dd>
<dt>{{HTTPHeader("Access-Control-Allow-Methods")}}</dt>
<dd>指定对预请求的响应中,哪些 HTTP 方法允许访问请求的资源。</dd>
<dt>{{HTTPHeader("Access-Control-Expose-Headers")}}</dt>
<dd>指示哪些 HTTP 头的名称能在响应中列出。</dd>
<dt>{{HTTPHeader("Access-Control-Max-Age")}}</dt>
<dd>指示预请求的结果能被缓存多久。</dd>
<dt>{{HTTPHeader("Access-Control-Request-Headers")}}</dt>
<dd>用于发起一个预请求,告知服务器正式请求会使用那些 HTTP 头。</dd>
<dt>{{HTTPHeader("Access-Control-Request-Method")}}</dt>
<dd>用于发起一个预请求,告知服务器正式请求会使用哪一种 <a href="/zh-CN/docs/Web/HTTP/Methods">HTTP 请求方法</a>。</dd>
<dt>{{HTTPHeader("Origin")}}</dt>
<dd>指示获取资源的请求是从什么域发起的。</dd>
</dl>
<h3 id="技术引用">技术引用</h3>
<ul>
<li><a href="https://fetch.spec.whatwg.org">Fetch 规范</a></li>
</ul>
<p>{{QuickLinksWithSubpages("/en-US/docs/Glossary")}}</p>
|