Vue利用axios发送请求并代理请求

由于浏览器的同源策略 ,发送请求时常常遇到跨域问题 ,一种解决办法是让后端配置跨域,还有一种就是使用代理(与前端工程一起启动,同一个端口),因为代理不是通过浏览器发送的,所以不受同源策略的限制

服务器代码

用SpringBoot工程(端口为8082)简单写了一个Controller层,用于·接收前端发来的请求,并返回数据,前端请求

http://localhost:8082/students 时会返回学生列表数据 ,访问 http://localhost:8082/cars 时会返回汽车列表数据

java 复制代码
import com.example.pojo.Car;
import com.example.pojo.Student;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@RestController
public class TestController {

    private List<Student>studentList=List.of(
            Student.builder().id("001").name("张三").age(Short.valueOf("18")).build(),
            Student.builder().id("002").name("李四").age(Short.valueOf("19")).build(),
            Student.builder().id("003").name("王五").age(Short.valueOf("20")).build()
    );

    private List<Car>carList=List.of(
            Car.builder().id("001").name("奥迪").price(100000F).build(),
            Car.builder().id("002").name("玛莎拉蒂").price(500000F).build(),
            Car.builder().id("003").name("奔驰").price(300000F).build()
    );

    @GetMapping("/students")
    public List<Student>getStudentList(){
        return studentList;
    }

    @GetMapping("/cars")
    public List<Car>getCarList(){
        return carList;
    }

}

前端代码

通过配置代理进行请求的转发,实现跨域访问,在vue.config.js文件中配置如下代码

javascript 复制代码
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,

  //开启代理服务器
  devServer:{
    proxy: {
      '/api': {
        target: 'http://localhost:8082/', // 你想要代理到的地址
        pathRewrite: {
          '^/api': '/' // 重写路径,将 /api 替换为 /
        }
      }
    }
  }
})

通过axios发送请求,先在终端输入 npm i axios 引入axios的依赖包,然后通过一下代码发送请求

javascript 复制代码
axios.get("/api/students")
    .then(
    	//请求成功的回调函数
        response=>{
            this.studentList=response.data
         },
    	//请求失败的回调函数
        err=>{
            alert(err.message)
        }
    )
相关推荐
veneno11 小时前
大量异步并发请求控制并发解决方案
前端
i***t91912 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
oden12 小时前
2025博客框架选择指南:Hugo、Astro、Hexo该选哪个?
前端·html
小光学长12 小时前
基于ssm的宠物交易系统的设计与实现850mb48h(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·前端·数据库
云中飞鸿12 小时前
函数:委托
javascript
小小前端要继续努力13 小时前
渐进增强、优雅降级及现代Web开发技术详解
前端
老前端的功夫13 小时前
前端技术选型的理性之道:构建可量化的ROI评估模型
前端·javascript·人工智能·ubuntu·前端框架
汝生淮南吾在北13 小时前
SpringBoot+Vue超市收银管理系统
vue.js·spring boot·后端
狮子座的男孩13 小时前
js函数高级:04、详解执行上下文与执行上下文栈(变量提升与函数提升、执行上下文、执行上下文栈)及相关面试题
前端·javascript·经验分享·变量提升与函数提升·执行上下文·执行上下文栈·相关面试题
p***930314 小时前
SpringBoot + vue 管理系统
vue.js·spring boot·后端