前端PROXY解决CORS问题

113 阅读2分钟

为什么会产生跨域?

image.png

浏览器的同源策略:

image.png

同源策略(Same-Origin Policy)是一种安全策略,用于Web浏览器中限制不同源(Origin)之间的交互。源指的是组成URL的协议、主机名和端口号。

同源策略的目的是防止恶意网站通过脚本等方式访问其他源的敏感数据或进行未经授权的操作。它通过限制不同源之间的访问来确保Web应用程序的安全性。

根据同源策略,以下情况被认为是不同源的:

- 1:协议不同:

两个URL的协议部分不同,例如http和https。

- 2:主机名不同:

两个URL的主机名部分不同,例如www.example.com和api.example.com。

- 3:端口号不同:

两个URL的端口号部分不同,例如example.com:8080和example.com:3000。

如果两个URL在协议、主机名和端口号上完全相同,它们被认为是同源的。

前端PROXY解决跨域问题的方法:

PROXY服务器代理

修改.env.development中的环境变量,将base api修改为 /api(代理,当向/api请求时就会向自身的服务器进行请求)
# just a flag
ENV = 'development'

# base api
VUE_APP_BASE_API = '/api'
配置vue.config.js
// 配置代理转发
  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    proxy: {
      '/api': {
        // 只要请求地址中有/api就会进入
        /* http://localhost:9528/api/sys/login => https://heimahr.itheima.net/api/sys/login */
        target: 'https://api-hmzs.itheima.net'
      }
    }
  },
配置完成,启动项目,就不会产生CORS问题(虽然PROXY解决了CORS的问题,但是在发送请求时会在后面自动拼接上/api,也要跟后端的小伙伴进行沟通)

image.png

今日的分享内容完成,放一张蒲牢镇楼

image.png