浏览器信任边界 · 本地模拟
Origin 与 CORS 三问实验台
别把一条“CORS 报错”当作全部结论。每次只改一个条件,分别看请求、读取和业务授权发生了什么。
恢复基线
先看浏览器眼中的两端
页面 origin
fetch()
接口 origin
实验场景
允许清单中的页面读取公开响应
跨源请求已发送,但响应不可读
预检未通过,请求正文未发送
CORS 允许读取,但对象权限拒绝
同源请求,不需要 CORS 放行
页面地址
协议
https
http
主机
shop.lab.example
admin.lab.example
api.lab.example
端口
443
8443
80
接口地址
协议
https
http
主机
api.lab.example
shop.lab.example
partner.lab.example
端口
443
8443
80
请求与响应条件
携带凭据
请求类型
简单请求
需预检的请求
预检结果
允许
拒绝
Access-Control-Allow-Origin
精确返回页面 origin
返回 *
返回其他 origin
不返回
服务端业务判断
身份与对象权限均通过
会话无效
无目标对象权限
业务状态不允许
第一问
请求是否发送
第二问
响应是否可读
第三问
业务是否获准
浏览器会尝试的请求
响应头与浏览器判断