推荐答案
跨域资源共享(CORS)是一种机制,允许网页从不同的域(即跨域)请求资源。它通过使用额外的 HTTP 头来告诉浏览器,允许某个网页从不同的域访问资源。
如何配置 CORS
在 Node.js 中,可以通过使用 cors
中间件来配置 CORS。以下是一个简单的示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ---------------- ----- --- - ---------- -- --------- ---------------- -- --------- -------------- ------- --------------------- ---- ---------------- ----- ---- -- - ---------- -------- ----- -- ------------ --- --- --------- --- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
本题详细解读
什么是跨域资源共享 (CORS)
跨域资源共享(CORS)是一种安全机制,用于控制浏览器是否允许网页从不同的域请求资源。默认情况下,浏览器会阻止跨域请求,以防止恶意网站访问用户的敏感数据。CORS 通过在 HTTP 头中添加特定的字段来告诉浏览器,允许某个网页从不同的域访问资源。
CORS 的工作原理
当浏览器发起跨域请求时,会先发送一个预检请求(Preflight Request),这是一个 OPTIONS
请求,用于检查服务器是否允许实际的请求。服务器通过响应头中的 Access-Control-Allow-Origin
字段来告诉浏览器是否允许跨域请求。
配置 CORS 的常见选项
origin
: 允许访问资源的来源。可以是一个字符串(如'https://example.com'
),也可以是一个数组(如['https://example.com', 'https://another-domain.com']
),或者设置为'*'
允许所有来源。methods
: 允许的 HTTP 方法,如['GET', 'POST', 'PUT', 'DELETE']
。allowedHeaders
: 允许的请求头,如['Content-Type', 'Authorization']
。credentials
: 是否允许发送凭据(如 cookies),设置为true
时,Access-Control-Allow-Origin
不能为'*'
。
示例配置
app.use(cors({ origin: 'https://example.com', methods: ['GET', 'POST', 'PUT', 'DELETE'], allowedHeaders: ['Content-Type', 'Authorization'], credentials: true }));
通过以上配置,服务器将允许来自 https://example.com
的跨域请求,并且允许使用 GET
、POST
、PUT
和 DELETE
方法,同时允许 Content-Type
和 Authorization
请求头,并且允许发送凭据。