---
title: CORS 最佳实践:预检缓存与凭证请求
keywords:
- CORS
- preflight
- Access-Control-Max-Age
- credentials
- Vary
description: 梳理 CORS 的关键响应头与服务器配置,说明如何通过预检缓存与凭证策略提升性能与安全,并避免常见误配置。
date: 2025-11-26
sources:
- https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
- https://fetch.spec.whatwg.org/
categories:
- 文章资讯
- 编程技术
---
概述
CORS 通过预检请求(OPTIONS)与响应头协商跨源访问权限。合理设置 Access-Control-Allow-Origin、Allow-Methods/Headers 与 Max-Age 可降低延迟与负载;凭证请求需使用精确来源而非 *。
关键要点(已验证)
- 预检缓存:
Access-Control-Max-Age缓存预检结果,减少重复 OPTIONS(来源) - 凭证:当
credentials为include时必须使用精确Allow-Origin,并返回Allow-Credentials: true(来源) - Vary:对返回
Allow-Origin的响应设置Vary: Origin,避免缓存污染(来源)
服务器示例
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 86400
Vary: Origin

发表评论 取消回复