📢 最新动态(2025年7月)
W3C发布了《跨域资源共享(CORS)标准2.0草案》,进一步优化了预检请求(Preflight)的缓存机制,部分场景下可减少30%的冗余请求!这对前端性能优化是个重大利好🎉。
浏览器出于安全考虑,实施了同源策略(Same-Origin Policy):默认禁止网页向不同域名、端口或协议的接口发起请求。
举个🌰:
https://www.your-site.com
https://api.other-site.com/data
CORS(Cross-Origin Resource Sharing)是官方解决方案,核心逻辑:
服务端通过响应头告诉浏览器:"这个跨域请求我允许!"
Access-Control-Allow-Origin: https://www.your-site.com // 允许的域名 Access-Control-Allow-Methods: GET, POST, PUT // 允许的HTTP方法 Access-Control-Allow-Headers: Content-Type, X-Token // 允许的自定义请求头
Content-Type: text/plain
) → 直接放行 X-Token
) → 浏览器先发OPTIONS
探路 fetch('https://api.other-site.com/data', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Token': 'your-secret-key', // 自定义头需服务端允许 }, body: JSON.stringify({id: 123}) });
⚠️ 注意:部分头(如Cookie
)需额外配置credentials: 'include'
✅ 检查:
Access-Control-Allow-Origin: *
(或具体域名) ✅ 解决方案:
Access-Control-Allow-Headers
包含你的头(如X-Token
) 通过Access-Control-Max-Age
减少OPTIONS请求:
Access-Control-Max-Age: 86400 // 缓存24小时
前后端协作配置:
// 前端 fetch(url, { credentials: 'include' }); // 后端 Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: https://www.your-site.com // 不能是*
Access-Control-*
系列响应头是CORS的灵魂 💡 终极建议:联调时打开浏览器开发者工具,重点关注Network标签中的红色CORS错误和请求/响应头对比,问题往往一目了然!
(本文技术要点参考自MDN Web Docs及W3C CORS 2.0草案,2025年7月更新)
本文由 闳夜梅 于2025-07-29发表在【云服务器提供商】,文中图片由(闳夜梅)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/475322.html
发表评论