# 跨域处理

## 产生原因

跨域产生的原因是由于前端地址与后台接口不是同源，从而导致 ajax 不能发送

::: tip 非同源产生的问题

1. Cookie、LocalStorage 和 IndexDB 无法获取
2. DOM 无法获得
3. AJAX 请求不能发送

:::

::: tip 同源条件

**协议**，**端口**，**主机** 三者相同即为同源

反之，其中只要 **某一个** 不一样则为不同源

:::

## 解决方式

**本地开发跨域**

本地开发一般使用下面 3 种方式进行处理

1. vite 的 proxy 进行代理
2. 后台开启 cors
3. 使用 nginx 转发请求

项目内部自带第一种方式，具体可以参考[服务端交互-本地开发环境接口地址修改](../guide/mock.md#配置)

**生产环境跨域**

生产环境一般使用下面 2 种方式进行处理

1. 后台开启 cors
2. 使用 nginx 转发请求

**后台开启 cors 不需要前端做任何改动**

nginx 配置文件可以查看[nginx 配置](../guide/deploy.md#使用-nginx-处理跨域)
