0


前端vue解决跨域问题(适用于开发环境)

前言

跨域问题的存在主要是由于浏览器的安全策略所导致的。

具体来说,有以下几个主要原因:

1.同源策略 (Same-Origin Policy):
浏览器的安全机制,要求请求必须来自相同的协议、域名和端口。
2.安全性和隐私保护:
防止恶意网站访问其他网站的数据,避免 CSRF 和 XSS 攻击。
3.CORS (Cross-Origin Resource Sharing):
服务器可以通过设置 Access-Control-Allow-Origin 头来允许特定来源的跨域请求。

解决方案

(这里主要以修改vue配置文件里proxy的接口代理方式)

一、配置方式

在vue工程文件中找到此文件(这里以vue3为例)

找到server或者devServer(cli构建和vite构建略有不同)

在里面配置

target里写你的后台服务

server: {
    proxy: {
      '/api': {
        target: 'http://localhost:8085', //后台服务
        changeOrigin: true, //修改源
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }

当然也可以是其他三方接口

(这里使用的是另一种配置方式)

二、使用方式

只要在你请求的位置换成你所配置的“/api/”即可

比如你所请求的地址为 'http://localhost:8085/login'

只要改为'/api/login'即可

原理

 devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:8085', // 目标服务器地址
        changeOrigin: true, // 修改请求头的 Origin
        pathRewrite: { '^/api': '' } // 重写路径
      }
    }
  }

1.发送请求

  • 当前端应用发送一个请求到 /api/xxx 时,webpack-dev-server 会根据代理规则进行处理。

2.代理转发

3.修改请求头

  • changeOrigin: true 会修改请求头中的 Origin,使其看起来像是直接从目标服务器发起的请求。

4.路径重写

  • pathRewrite 选项用于去除请求路径中的 /api 前缀,确保请求正确发送到目标服务器。

本文转载自: https://blog.csdn.net/m0_69867720/article/details/142673825
版权归原作者 HoshiYun 所有, 如有侵权,请联系我们删除。

“前端vue解决跨域问题(适用于开发环境)”的评论:

还没有评论