JavaScript-面试-同源策略与跨域
2026年10月16日·Admin·2 次浏览
面试题:什么是同源策略?常见跨域方案?
同源
协议 + 域名 + 端口 三者一致为同源。不同源时:
- XHR / fetch 受 CORS 限制。
iframe与window互访受限制。- Cookie 默认随同源请求携带(
Domain/Path/SameSite可细化)。
CORS 简述
浏览器预检 OPTIONS(复杂请求):服务端返回 Access-Control-Allow-Origin、Allow-Methods、Allow-Headers 等;简单请求可直接 GET/POST(带限制)。
凭证请求需 Access-Control-Allow-Credentials: true 且 Origin 不能为 *。
常见方案
- 代理:开发环境 devServer proxy;生产 同源网关转发。
- JSONP(仅 GET、老方案,有安全风险)。
- postMessage:跨窗口通信。
- Nginx/CORS 响应头 配置。
面试强调:同源策略在浏览器;Node 服务端请求无浏览器 CORS(除非对方服务器限制)。