Vue前后端跨域链接

前端更改访问方式

在vite.config.js文件设置映射的路径

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/, '')
      }
    }
  }
})

创建一个request.js文件,创建一个基于 Axios 的 HTTP 客户端实例,并设置了一个基本的 URL 前缀api,这个api是所有请求的公共前缀。

import axios from 'axios';
import{
   ElMessage} from 'element-plus'

import router from '@/router/router.js'
//定义一个变量,记录公共的前缀  ,  baseURL
const baseURL = '/api';
const instance = axios.create({
   baseURL})

使用方法

1、action:

 <el-upload class="avatar-uploader" :show-file-list="false" :auto-upload="true" action="/api/upload"
                         name="file" :headers="{ 'Authorization': tokenStore.token }" :on-success="uploadSuccess">
                        <img v-if="imgUrl" :src="imgUrl" class="avatar" />
                        <img v-else src="@/assets/avatar.jpg" width="150px" height="150px" />
                    </el-upload>

这个文件上传action对应的路径是** /api/upload **,实际上api会被替换。

2、 在普通方法函数上可以省略api,直接写后端函数路径

import request from  '@/utils/request.js'
 
// 登录
export const loginUserService=(registerData)=>{
   
    const params = new URLSearchParams()
    for (let key in registerData){
   
        params.append(key,registerData[key])
    }
    return request.post('/user/login',params)
}

总结一下前端端口配置文件的各个参数意义

  • '/api’:这是指定要代理的路径前缀。当前端应用程序发出以 /api 开头的请求时,将会触发代理配置。
  • target: ‘http://localhost:8080’:这是指定代理的目标服务器地址。所有匹配到的请求将被转发到这个地址上,即将前端请求代理到后端的目标服务器地址。
  • changeOrigin: true:这是一个布尔值,表示是否修改请求头中的 “Origin” 字段为目标服务器的地址。设置为 true 可以解决一些跨域请求的问题。
  • rewrite: (path) => path.replace(/^/api/, ‘’):这是一个重写函数,用于修改请求的路径。在这个例子中,它的作用是将请求路径中的 /api 前缀去除,以便与后端服务器的路由匹配。

通过这段配置,当前端应用程序发起以 /api 开头的请求时,请求将被代理到 http://localhost:8080(即后端 API 服务器)上进行处理。这样可以解决前端与后端的跨域请求问题,同时简化前端代码中的请求路径。

相关推荐

  1. Vue前后

    2023-12-28 22:10:04       62 阅读
  2. 前后问题

    2023-12-28 22:10:04       54 阅读
  3. vue前后不在同一网络下,前端解决

    2023-12-28 22:10:04       48 阅读
  4. 前后分离项目请求

    2023-12-28 22:10:04       55 阅读
  5. vue+django 开发环境前后联调配置

    2023-12-28 22:10:04       63 阅读
  6. Vue3实战笔记(05)--- 前后解决方案

    2023-12-28 22:10:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 22:10:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 22:10:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 22:10:04       82 阅读
  4. Python语言-面向对象

    2023-12-28 22:10:04       91 阅读

热门阅读

  1. vue前端学习笔记

    2023-12-28 22:10:04       69 阅读
  2. 数据库(部分函数)

    2023-12-28 22:10:04       51 阅读
  3. LeetCode 2660. 保龄球游戏的获胜者:模拟

    2023-12-28 22:10:04       57 阅读
  4. docker学习笔记

    2023-12-28 22:10:04       59 阅读
  5. centos 编译安装 make

    2023-12-28 22:10:04       61 阅读
  6. storyBook play学习

    2023-12-28 22:10:04       43 阅读
  7. LeetCode——动态规划

    2023-12-28 22:10:04       42 阅读
  8. 前端---css 元素溢出

    2023-12-28 22:10:04       57 阅读
  9. 2024 Android保活总结

    2023-12-28 22:10:04       57 阅读
  10. 鸿蒙开发ArkTS基础学习-开发准备工具配置

    2023-12-28 22:10:04       51 阅读
  11. C++ 之map

    2023-12-28 22:10:04       57 阅读