跨域问题

跨域(Cross-Origin)是指浏览器从一个域名的网页去请求另一个域名的资源,当协议、域名或端口三者中任意一个不同时,即构成跨域访问‌

1. ‌同源策略(Same-Origin Policy)‌

定义‌:浏览器安全机制,限制不同源之间的资源共享。

同源条件‌:协议(如 http/https)、域名、端口必须完全相同‌

示例‌:同源:http://example.com:8080 与 http://example.com:8080

跨域:http://example.com 与 https://example.com(协议不同)或 http://example.com 与 http://api.example.com(域名不同)‌或者端口不同。

2. ‌跨域资源共享(CORS)‌

  • ‌作用‌:通过服务器设置特定HTTP响应头(如 Access-Control-Allow-Origin),允许指定源站跨域访问资源‌
  • ‌预检请求(Preflight)‌:复杂跨域请求(如带自定义头或 POST 请求)会先发送 OPTIONS 请求验证权限‌

3. ‌跨域实现方式‌

  • ‌Nginx配置‌:通过添加CORS头(如 Access-Control-Allow-Origin)和正确处理 OPTIONS 请求实现跨域‌

4. ‌安全与限制‌

  • ‌风险‌:跨域可能引发数据泄露(如Cookie劫持),需严格限制允许的源站‌1。
  • ‌限制‌:协议和端口导致的跨域问题需后端解决,前端无法绕过‌

比如我负责了一个后端项目:新的域名是b.com,而前端管理页面通过web浏览器的去访问的域名是a.com,开发或者管理员会通过浏览器的

a.com域名的管理页面去访问b.com的后端接口,这就涉及到了跨域问题。

而我的b.com的域名服务是通过nginx进行转发配置的,所以ng解决跨域问题的配置可以参考如下(前后端分离项目跨域问题解决的ng配置):

image

 

 

 

 

 

posted @ 2025-08-31 18:59  王能武  阅读(12)  评论(0)    收藏  举报