HTTP Response中的CORS Headers

发布时间:2026/7/17 11:07:29

HTTP Response中的CORS Headers
Access-Control-Allow-CredentialsAccess-Control-Allow-MethodsAccess-Control-Allow-OriginAccess-Control-Max-Age这四个都是CORSCross-Origin Resource Sharing跨域资源共享机制中的 HTTP Response Header用来告诉浏览器是否允许来自其他域名的网页访问当前服务器资源。假设有这样一个场景前端浏览器 https://app.example.com │ │ AJAX / fetch() ▼ 后端 API https://api.example.com由于域名不同app.example.com和api.example.com浏览器会认为这是跨域请求这时候服务器需要返回一些Access-Control-*响应头。1. Access-Control-Allow-Origin这是最重要的 CORS Header。它告诉浏览器哪些网站可以访问我的资源例如Access-Control-Allow-Origin: https://app.example.com表示只有https://app.example.com这个网站可以访问 API。例如GET https://api.example.com/user浏览器收到 ResponseHTTP/1.1 200 OK Access-Control-Allow-Origin: https://app.example.com浏览器发现自己的 Origin 是https://app.example.com和 Response 一致。于是✅ 允许 JavaScript 读取 Response。如果服务器返回Access-Control-Allow-Origin: *表示任何网站都可以访问。例如https://google.com https://facebook.com https://abc.com都可以调用。如果没有这个 Header(no Access-Control-Allow-Origin)浏览器会直接报Access to fetch at ... has been blocked by CORS policy2. Access-Control-Allow-Methods这个 Header 告诉浏览器允许哪些 HTTP Method。例如Access-Control-Allow-Methods: GET, POST, PUT, DELETE表示允许GET POST PUT DELETE不允许PATCH OPTIONS TRACE例如浏览器想发送DELETE /user/123浏览器先会问服务器OPTIONS /user/123服务器回答Access-Control-Allow-Methods: GET, POST浏览器发现DELETE 不在里面。于是❌ 不允许发送 DELETE。3. Access-Control-Allow-Credentials这是很多人容易搞混的 Header。它表示是否允许浏览器携带身份信息Credentials。Credentials 包括CookieSessionTLS Client CertificateHTTP Authentication例如浏览器fetch(url, { credentials: include })浏览器会带上Cookie: SESSIONIDabc123但是服务器必须回答Access-Control-Allow-Credentials: true浏览器才允许✅ 带 Cookie。如果服务器返回Access-Control-Allow-Credentials: false或者没有Access-Control-Allow-Credentials浏览器会❌ 不发送 Cookie。注意这个 Header 不能和Access-Control-Allow-Origin: *一起使用。例如Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true浏览器会认为非法因为不可能允许所有网站都携带你的 Cookie。所以如果允许 Credentials必须明确写Access-Control-Allow-Origin: https://app.example.com不能写*4. Access-Control-Max-Age这个 Header 表示浏览器可以缓存 PreflightOPTIONS请求多久。例如第一次浏览器OPTIONS /api/user服务器Access-Control-Allow-Origin: https://app.example.com Access-Control-Allow-Methods: GET, POST Access-Control-Max-Age: 600表示600 秒也就是10 分钟。浏览器会记住GET POST 允许以后10 分钟内再发GET POST浏览器不会再发 OPTIONS。直接发GET节省一次网络请求。如果Access-Control-Max-Age: 86400表示24 小时浏览器一天内不会再问。四个 Header 的关系浏览器发起跨域请求时大致流程如下Browser │ │ OPTIONSPreflight ▼ Server服务器返回Access-Control-Allow-Origin: https://app.example.com Access-Control-Allow-Methods: GET, POST Access-Control-Allow-Credentials: true Access-Control-Max-Age: 600浏览器逐项检查Origin 是否允许 │ ▼ Method 是否允许 │ ▼ 是否允许 Cookie │ ▼ 缓存多久全部通过后真正发送 GET / POST 请求总结Header作用示例Access-Control-Allow-Origin指定哪些源Origin可以访问资源https://app.example.com、*Access-Control-Allow-Methods指定允许的 HTTP 方法GET, POST, PUT, DELETEAccess-Control-Allow-Credentials是否允许浏览器携带 Cookie、Session 等身份凭据trueAccess-Control-Max-Age浏览器缓存预检Preflight结果的时间秒600、86400可以把这四个响应头理解成一组权限控制Allow-Origin谁可以访问Allow-Methods可以执行什么操作Allow-Credentials访问时能不能携带身份凭据Cookie、Session 等Max-Age这些规则浏览器可以缓存多久避免重复发送预检请求。

相关新闻

机器人操作基准测试有效性诊断:Shortcut、统计显著性与过拟合三重验证

机器人操作基准测试有效性诊断:Shortcut、统计显著性与过拟合三重验证

2026/7/17 11:05:21

1. 项目概述:为什么机器人操作基准测试需要“有效性诊断”这把手术刀你有没有遇到过这样的情况:团队花三个月训练出一个抓取机械臂模型,在某套公开benchmark上准确率飙到98.5%,论文里画的曲线漂亮得像教科书;结果一拿到…

【创客匠人资讯分享】AI赋能知识付费:告别流量,深耕价值

【创客匠人资讯分享】AI赋能知识付费:告别流量,深耕价值

2026/7/17 11:05:06

历经数年发展,知识付费行业早已告别野蛮生长的流量红利期。早期依托短视频、图文课程的标准化售卖模式,逐渐暴露同质化严重、交付粗糙、用户留存偏低的短板。而2026年,生成式AI技术的深度落地,不再是简单为行业提供工具辅助&#…

大白话解释class的公有和私有

大白话解释class的公有和私有

2026/7/8 16:30:33

1. 大白话比喻 公有(Public):相当于你的微信头像和昵称。谁都能看,随便点进去就能访问,改了大家也都知道。 私有(Private):相当于你的银行卡密码。只有你自己(类内部的方…

实战指南:掌握地理空间AI分析的5个突破性技巧

实战指南:掌握地理空间AI分析的5个突破性技巧

2026/7/17 11:01:26

实战指南:掌握地理空间AI分析的5个突破性技巧 【免费下载链接】geoai GeoAI: Artificial Intelligence for Geospatial Data 项目地址: https://gitcode.com/gh_mirrors/ge/geoai 地理空间人工智能(GeoAI)正在彻底改变我们理解和分析地…

WarcraftHelper完整指南:让经典魔兽争霸3在现代电脑上焕发新生

WarcraftHelper完整指南:让经典魔兽争霸3在现代电脑上焕发新生

2026/7/17 11:01:26

WarcraftHelper完整指南:让经典魔兽争霸3在现代电脑上焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸3》这款经…

CANN/asc-devkit SIMT scalbnf函数

CANN/asc-devkit SIMT scalbnf函数

2026/7/17 11:01:26

scalbnf 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/ca…

如何免费解锁Wand专业版:3步实现完整游戏修改体验的终极指南

如何免费解锁Wand专业版:3步实现完整游戏修改体验的终极指南

2026/7/17 11:01:26

如何免费解锁Wand专业版:3步实现完整游戏修改体验的终极指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 你是否厌倦了游戏修改工具…

yuzu模拟器:在电脑上免费玩Switch游戏的终极指南

yuzu模拟器:在电脑上免费玩Switch游戏的终极指南

2026/7/17 11:01:26

yuzu模拟器:在电脑上免费玩Switch游戏的终极指南 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想在电脑上体验《塞尔达传说:旷野之息》、《超级马里奥奥德赛》等任天堂Switch热门游戏吗&a…

核桃派1B开发板在车载系统中的应用与优化

核桃派1B开发板在车载系统中的应用与优化

2026/7/17 10:51:25

1. 核桃派1B开发板硬件解析与选型考量 核桃派1B作为一款基于全志H618四核处理器的Linux开发板,其硬件配置在同类产品中颇具竞争力。从官方资料来看,这款开发板采用了64位ARM Cortex-A53架构,主频可达1.5GHz,标配1GB DDR4内存和8GB…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/17 10:50:47

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/16 14:29:31

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

2026/7/17 0:00:57

更多请点击: https://intelliparadigm.com 第一章:Cursor终端插件生态避坑指南概览 Cursor 作为基于 VS Code 内核构建的 AI 原生编辑器,其终端插件生态虽活跃,但存在兼容性断层、权限策略突变与调试链路断裂等典型风险。开发者常…

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

2026/7/17 0:00:57

更多请点击: https://codechina.net 第一章:ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 提示词工程已从经验试错迈入变量驱动的科学阶段。实证研究表明,影响…

DeepSeek V4替换Codex底座模型的实践与优化

DeepSeek V4替换Codex底座模型的实践与优化

2026/7/17 0:00:57

1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…