新闻详情

新闻详情

首页 / 资讯中心 / 详情

跨域原理解析

发布时间:2026/10/1 1:01:06来源:尧图网络
跨域原理解析
跨域 浏览器同源策略限制同源协议 域名 (IP) 端口三者必须全部相同只要任意一个不一样就是跨域。注意跨域限制只存在于浏览器后端之间请求、Postman、curl、App 访问不存在跨域。一、产生跨域的几种场景举例假设当前页面地址https://a.com:8080表格请求地址是否跨域原因https://a.com:8080/api❌ 同域协议、域名、端口全部一致http://a.com:8080/api✅ 跨域协议不同http vs httpshttps://b.com:8080/api✅ 跨域域名不同https://a.com:9090/api✅ 跨域端口不同https://www.a.com:8080✅ 跨域子域名不同localhost 和 127.0.0.1 也是跨域一个域名一个 IP。二、两种 CORS 请求类型1. 简单请求不会发送 OPTIONS 预检满足全部条件请求方法GET/POST/HEAD请求头只能是Accept、Accept-Language、Content-Language、Content-Type (仅text/plain/multipart/form-data/application/x-www-form-urlencoded)浏览器直接发真实请求后端返回后浏览器校验响应头不通过则拦截。2. 预检请求 OPTIONS只要不满足简单请求浏览器先发一次 OPTIONS 预检请求询问服务器是否允许跨域预检通过才会发起真实请求。 触发预检常见场景请求方法PUT / DELETE / PATCH自定义请求头如token、AuthorizationContent-Type application/json开启凭证credentials: include就是Access-Control-Allow-Credentials3、服务器或后端框架跨域设置# 统一添加 CORS 头 add_header Access-Control-Allow-Origin $cors_origin always; add_header Access-Control-Allow-Credentials true always; add_header Access-Control-Allow-Methods GET, POST, PUT, DELETE, OPTIONS always; add_header Access-Control-Allow-Headers DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,agentId always; # 处理 OPTIONS 预检请求 if ($request_method OPTIONS) { return 204; }Access-Control-Allow-Credentials决定了跨域请求能否携带凭证Credentials默认不携带凭证凭证包含了Cookie、HTTP 认证头如Authorization: Basic xxx、TLS 客户端证书。// ❌ 即使服务端允许前端不设置也不会携带 Cookie fetch(https://api.example.com/data); // ✅ 必须显式设置 fetch(https://api.example.com/data, { credentials: include });前端credentials的三个值值行为omit从不携带凭证默认值same-origin同源时携带跨域时不携带include跨域时也携带凭证注意1、即便跨域也会发起请求只是浏览器会拦截服务端的响应客户端无法获取到。2、后端设置Access-Control-Allow-Credentials: true时Access-Control-Allow-Origin不能为*。3、OPTIONS 预检请求后端必一般返回204。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

scrcpy 1 秒把手机画面怼上桌面,0 装 App、0 Root 2026/10/1 1:57:41

scrcpy 1 秒把手机画面怼上桌面,0 装 App、0 Root

scrcpy 1 秒把手机画面怼上桌面,0 装 App、0 Root 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 在 27 寸大屏前改 bug,想顺手瞄一眼手机上的日志输出。插上数据线…

阅读更多 →
VueUse useSSRWidth 完全指南:在 SSR 场景下统一注入视口宽度,避免水合不一致 2026/10/1 1:57:41

VueUse useSSRWidth 完全指南:在 SSR 场景下统一注入视口宽度,避免水合不一致

前端 【免费下载链接】vueuse Collection of essential Vue Composition Utilities for Vue 3 项目地址: https://gitcode.com/gh_mirrors/vu/vueuse 点击查看 免费下载 导读 useSSRWidth 是 VueUse 提供的一个 SSR(服务端渲染)辅助工具&am…

阅读更多 →
CC-Switch接入DeepSeek与Codex:安装配置与故障排查指南 2026/10/1 1:57:41

CC-Switch接入DeepSeek与Codex:安装配置与故障排查指南

1. 为什么要用CC-Switch管理DeepSeek和Codex:一个配置管家的价值所在前阵子我同时用着好几家的AI服务,本地又装了Codex CLI,每次想切换模型提供方都要打开配置文件改base_url和API Key,改完还得重启终端、重新登录,折腾…

阅读更多 →
claude-red 实战指南:Zigbee / Thread / Matter 802.15.4 网状网络攻击方法论 2026/10/1 1:57:40

claude-red 实战指南:Zigbee / Thread / Matter 802.15.4 网状网络攻击方法论

AI 技能网络安全渗透测试红蓝对抗应用安全 【免费下载链接】Claude-Red claude-red is a curated library of offensive security skills designed for the Claude skills system. Each skill is a structured SKILL.md file that primes Claude with expert-level methodology…

阅读更多 →
DDIA 术语索引全解析:如何利用《Designing Data-Intensive Applications》的书籍索引快速定位分布式系统知识 2026/10/1 1:57:40

DDIA 术语索引全解析:如何利用《Designing Data-Intensive Applications》的书籍索引快速定位分布式系统知识

文档教程 【免费下载链接】ddia 《Designing Data-Intensive Application》DDIA 第一版 / 第二版 中文翻译 项目地址: https://gitcode.com/gh_mirrors/dd/ddia 点击查看 免费下载 本文以 DDIA 官方中文翻译仓库中的书籍索引(content/en/indexes.md&…

阅读更多 →
深入掌握 Node.js 内置 Error 对象:用 AppError 统一应用级错误处理(Node.js Best Practices 实践指南) 2026/10/1 1:57:34

深入掌握 Node.js 内置 Error 对象:用 AppError 统一应用级错误处理(Node.js Best Practices 实践指南)

文档教程后端 【免费下载链接】nodebestpractices ✅ The Node.js best practices list (July 2026) 项目地址: https://gitcode.com/GitHub_Trending/no/nodebestpractices 点击查看 免费下载 导读 本文基于 Node.js 最佳实践清单(Node Best Practice…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉