网易首页 > 网易号 > 正文 申请入驻

浏览器为什么突然"生气":CORS拦截背后的安全逻辑

0
分享至

如果你正在学前端开发或者调用API,大概率见过这类报错——"Blocked by CORS policy"、"No 'Access-Control-Allow-Origin' header"、"Cross-origin request blocked"。第一次碰到时,确实像浏览器莫名其妙发了脾气。但CORS并非随机拦截,它是一套有明确目的的浏览器安全规则。

一句话概括:CORS是浏览器用来控制"网页何时能向不同来源发送请求"的规则。这里的"来源"(origin)由三部分组成:协议、域名、端口。以下这些看似相关的地址,浏览器会视为完全不同的来源:


https://myapp.com
http://myapp.com
https://api.myapp.com
https://myapp.com:3000

只要其中任何一部分不同,就是跨来源请求。假设你的前端运行在 https://myfrontend.com,试图从 https://api.other-site.com/data 获取数据,浏览器会立即识别出这是跨来源操作,然后检查目标服务器是否允许。若服务器未授权,浏览器直接阻断响应。

CORS存在的根本原因是保护用户。没有这类规则,恶意网站就能利用你当前的登录状态、Cookie或会话信息,悄悄向其他网站发起请求。CORS让服务器明确表态:哪些网站可以读取响应,哪些不行。它不是故意为难开发者,而是浏览器基于安全风险的必要戒备。

理解CORS需要先知道同源策略(Same-Origin Policy)——浏览器默认禁止页面自由读取不同来源的响应。CORS则是服务器主动放宽这一限制的机制。简单说:同源策略是默认锁,CORS是服务器掌握的钥匙。

服务器通过特定HTTP头来授权。最常见的是 Access-Control-Allow-Origin: https://myfrontend.com,表示允许该特定来源访问。有时也会看到 Access-Control-Allow-Origin: *,意为"任何来源均可",这对完全公开的资源适用,但涉及身份验证时未必合适。

一个容易混淆的点:CORS主要是浏览器的行为。服务器只负责发送响应头,最终决定是否让前端JavaScript读取响应的,是浏览器。即便服务器返回了200状态码和数据,若缺少正确的CORS头,浏览器仍会拦截,前端代码拿不到任何内容。

这对调试很棘手——网络面板能看到响应,控制台却报错,因为浏览器在"最后一公里"拦下了数据。这不是bug,是CORS的工作方式。

常见场景下,开发者遇到的CORS问题通常有几种解决路径:后端添加正确的响应头、使用代理服务器转发请求、或者调整请求配置(如withCredentials与Access-Control-Allow-Credentials的配合)。但核心原则不变:CORS的决策权在服务器,执行权在浏览器。

另一个细节是预检请求(Preflight)。对于某些HTTP方法(如PUT、DELETE)或自定义头,浏览器会先发送OPTIONS请求试探服务器态度,确认允许后再发正式请求。这解释了为什么有时候控制台显示两个请求——第一个是"问路"的,第二个才是"办事"的。

理解CORS的关键是分清责任边界:服务器声明政策,浏览器强制执行。开发者常犯的错误是试图在前端"解决"CORS——加什么请求头、改什么fetch配置——但根本解方几乎总是在服务器端。浏览器不会因为前端代码的意愿而放宽安全策略。

这也解释了为什么本地开发时常遇CORS问题:localhost与生产环境的来源不同,而许多后端服务默认只允许特定域名访问。开发环境的代理配置、浏览器插件临时禁用CORS,都是权宜之计,不能用于生产。

从产品设计角度看,CORS体现了Web安全的一个基本张力:开放与隔离的平衡。浏览器既要让网页能够组合各类服务( mashup ),又要防止恶意站点窃取用户在其他站点的身份。CORS是这种平衡的技术实现——不是最优雅的方案,但是在现有架构下务实的折中。

对于初学者,遇到CORS报错时的排查思路可以简化为三步:确认请求来源与目标是否跨域、检查服务器响应头是否包含Access-Control-Allow-Origin、验证预检请求是否通过。多数问题都能在这三步内定位。

最后值得强调的是,CORS只约束浏览器环境。服务器之间的HTTP请求、curl命令行调用、Postman等工具都不受CORS限制——它们没有"用户会话被恶意利用"的风险场景。这也是为什么同样的API在Postman里工作正常,放到浏览器里却报错,这恰恰说明CORS在发挥作用。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“十年烧烤无人问,一墙书法天下知!”女孩在父亲店写《将进酒》

“十年烧烤无人问,一墙书法天下知!”女孩在父亲店写《将进酒》

一丝不苟的法律人
2026-05-12 21:58:34
6月1日入户调查敲门前,这3件事瞒报吃大亏,别怪没提醒!

6月1日入户调查敲门前,这3件事瞒报吃大亏,别怪没提醒!

混沌录
2026-05-13 23:57:13
马斯克、黄仁勋曾连续发警告!原来,中国机器人已让美国紧张焦虑

马斯克、黄仁勋曾连续发警告!原来,中国机器人已让美国紧张焦虑

慕名而来只为你
2026-05-12 05:09:38
曝知名网红董赤赤与公司闹翻!账户欠50多万,另起炉灶患严重抑郁

曝知名网红董赤赤与公司闹翻!账户欠50多万,另起炉灶患严重抑郁

裕丰娱间说
2026-05-14 13:35:10
5月14日,人社部公布2026年养老金调整通知了吗?来看看最新动态

5月14日,人社部公布2026年养老金调整通知了吗?来看看最新动态

社保小达人
2026-05-14 11:48:06
《惩罚者:最后一杀》只有48分钟,漫威这次想讲什么

《惩罚者:最后一杀》只有48分钟,漫威这次想讲什么

影视情报室
2026-05-13 09:12:35
日本乒协没想到,世乒赛惨败中国队后,最先扛不住的,是张本智和

日本乒协没想到,世乒赛惨败中国队后,最先扛不住的,是张本智和

揽星河的笔记
2026-05-13 20:40:58
“性质恶劣!”新西兰父子在海洋保护区“狂捞”486只鲍鱼,企图贩卖!“被判四个月居家监禁! ”

“性质恶劣!”新西兰父子在海洋保护区“狂捞”486只鲍鱼,企图贩卖!“被判四个月居家监禁! ”

新西兰天维网
2026-05-13 13:05:51
光速为何是一个整数?巧合吗?并不是,因为本来就有人为因素!

光速为何是一个整数?巧合吗?并不是,因为本来就有人为因素!

宇宙时空
2026-05-13 22:30:07
释永信“开光”真相大白,过程不堪入目,易中天也被牵连

释永信“开光”真相大白,过程不堪入目,易中天也被牵连

往史过眼云烟
2026-03-24 17:05:24
资本市场太疯狂:卖瓷砖的蒙娜丽莎蹭上英伟达 4天市值狂涨20亿 半导体却零营收

资本市场太疯狂:卖瓷砖的蒙娜丽莎蹭上英伟达 4天市值狂涨20亿 半导体却零营收

快科技
2026-05-14 09:36:28
夫妻性生活别急着进入!学会这招“延迟满足”,爽感增倍

夫妻性生活别急着进入!学会这招“延迟满足”,爽感增倍

精彩分享快乐
2026-05-13 12:05:07
努力探索新时期中美正确相处之道(大使随笔)

努力探索新时期中美正确相处之道(大使随笔)

人民网
2026-05-14 06:50:46
尾盘操作思路:半导体CPO是走是留?一句话直接告诉你!

尾盘操作思路:半导体CPO是走是留?一句话直接告诉你!

龙行天下虎
2026-05-14 14:24:37
砸了个寂寞!特朗普最愚蠢之处,就是把中美平起平坐的真相说出来

砸了个寂寞!特朗普最愚蠢之处,就是把中美平起平坐的真相说出来

小嵩
2026-03-28 18:44:22
“摸奶子”再惹争议,OPPO的流量反噬开始了

“摸奶子”再惹争议,OPPO的流量反噬开始了

品牌头版
2026-05-13 10:18:15
拼命演戏还清一亿四千万巨债,豪门梦碎,现回浙江农村过踏实日子

拼命演戏还清一亿四千万巨债,豪门梦碎,现回浙江农村过踏实日子

萧狡科普解说
2026-05-14 04:44:16
猝死的人越来越多?医生再次强调:宁可吃猪肉,也别做这6事

猝死的人越来越多?医生再次强调:宁可吃猪肉,也别做这6事

任医生聊健康
2026-05-14 10:09:56
宋佳调侃张嘉益:为何不推荐我试镜《主角》? 张嘉益回复全场笑翻

宋佳调侃张嘉益:为何不推荐我试镜《主角》? 张嘉益回复全场笑翻

娱最资讯
2026-05-14 09:47:07
浙江宝宝“九个头旋”引热议,儿保医师:头旋数量和智商、性格无直接关系

浙江宝宝“九个头旋”引热议,儿保医师:头旋数量和智商、性格无直接关系

上游新闻
2026-05-14 10:33:07
2026-05-14 15:12:49
像素与芯片
像素与芯片
有态度网友ytd
3862文章数 24关注度
往期回顾 全部

科技要闻

马斯克说会谈很顺利 黄仁勋点赞 库克比耶

头条要闻

媒体:中美元首会晤 世界吃下一颗“定心丸”

头条要闻

媒体:中美元首会晤 世界吃下一颗“定心丸”

体育要闻

登海报!哈登30+8+6创多项纪录 第8次赢天王山

娱乐要闻

肖战提名金海燕奖,这一步走得太稳

财经要闻

习近平同美国总统特朗普会谈

汽车要闻

C级纯电轿跑 吉利银河"TT"申报图来了

态度原创

数码
健康
家居
本地
公开课

数码要闻

PCIe 5.0固态硬盘仅在少数场景下有提升 不包括游戏

干细胞能让人“返老还童”吗

家居要闻

精神奢享 对话塔尖需求

本地新闻

用苏绣的方式,打开江西婺源

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版