欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 通过配置代理解决跨域问题(Vue+SpringBoot项目为例)

通过配置代理解决跨域问题(Vue+SpringBoot项目为例)

2025/1/30 16:02:18 来源:https://blog.csdn.net/jingling555/article/details/145393657  浏览:    关键词:通过配置代理解决跨域问题(Vue+SpringBoot项目为例)

跨域问题:

是由浏览器的同源策略引起的,同源策略是一种安全策略,用于防止一个网站访问其他网站的数据。

同源是指协议、域名和端口号都相同。

跨域问题常常出现在前端项目中,当浏览器中的前端代码尝试从不同的域名、端口或协议发出请求时,浏览器会因为同源策略而拒绝该请求。

为了解决跨域问题,可以通过配置代理来绕过浏览器的同源策略。

具体来说,可以在前端项目的配置中设置代理规则,将某些请求路径转发到同源的后端服务器。

例如:

基于vue项目来说:

可以在request.js配置baseURL的值为/api

request.js:

//定制请求的实例//导入axios  npm install axios
import axios from 'axios';
//定义一个变量,记录公共的前缀  ,  baseURL
const baseURL = '/api';
const instance = axios.create({baseURL})//添加响应拦截器
instance.interceptors.response.use(result=>{return result.data;},err=>{alert('服务异常');return Promise.reject(err);//异步的状态转化成失败的状态}
)export default instance;

在vite.config.js里面配置代理:

其实就是将原来的浏览器的http://127.0.0.1:5174/api替换成了http://localhost:8080,

这样就解决了跨域的问题

代理的原理是将前端的请求发送到同源的后端服务器,由后端服务器再发送到目标服务器,并将响应返回给前端。这样前端代码实际上是与同源的后端服务器进行通信,而不是与目标服务器直接通信,从而避免了跨域问题。

vite.config.js:

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}},server: {proxy: {'/api': {// 代理路径target: 'http://localhost:8080',// 目标地址changeOrigin: true,// 是否允许跨域rewrite: (path) => path.replace(/^\/api/, '')// 重写路径}}}
})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com