极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。
每天晚上九点 B站讲解前端工程化直播,并解答相关问题。

# 什么是跨域,如何解决跨域问题

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 216 (opens new window)

# 跨域

协议域名端口,三者有一不一样,就是跨域

案例一:www.baidu.comzhidao.baidu.com 是跨域

# 如何解决跨域

目前有两种最常见的解决方案:

  1. CORS,在服务器端设置几个响应头,如 Access-Control-Allow-Origin: *
  2. Reverse Proxy,在 nginx/traefik/haproxy 等反向代理服务器中设置为同一域名
  3. JSONP,详解见 JSONP 的原理是什么,如何实现 (opens new window)

附代码: nginx 关于跨域的配置

server {
  listen 80;
  server_name shanyue.tech;

  location / {
    # 避免非root路径404
    try_files $uri $uri/ /index.html;
  }

  # 解决跨域
  location /api {
    # 或者是 http://localhost:8080
    proxy_pass http://api.shanyue.tech;
  }
}
Last Updated: 11/27/2021, 10:11:48 AM