Vue利用axios发送请求并代理请求的实现代码

 更新时间:2024年10月21日 09:36:00   作者:小李大魔王  
在Web开发中,跨域问题是一个常见难题,通常由浏览器的同源策略引起,通过简单配置vue.config.js文件,以及安装axios依赖,即可实现前后端的无缝连接和数据交换,这种方法简便有效,对于处理跨域请求问题非常实用

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

服务器代码

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

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

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文件中配置如下代码

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的依赖包,然后通过一下代码发送请求

axios.get("/api/students")
    .then(
    	//请求成功的回调函数
        response=>{
            this.studentList=response.data
         },
    	//请求失败的回调函数
        err=>{
            alert(err.message)
        }
    )

到此这篇关于Vue利用axios发送请求并代理请求的文章就介绍到这了,更多相关Vue axios发送请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解hooks在vue3中的使用方法及示例

    详解hooks在vue3中的使用方法及示例

    hooks可以通过特定的函数将逻辑 "钩入" 组件中,使得开发者能够更灵活地构建和管理组件的功能从而提高代码的可读性以及可维护性等,本篇文章将介绍hooks如何在vue3中使用以及它的一些实际使用例子,让大家能更好的了解和使用hooks,需要的朋友可以参考下
    2023-09-09
  • Vue实现Dialog封装

    Vue实现Dialog封装

    在写业务的时候很常见的一个场景就是需要在不同的页面调用同一个表单,常用的交互就是把表单以弹窗的形式展示,本文主要介绍了Vue实现Dialog封装,感兴趣的可以了解一下
    2021-07-07
  • vue如何监听页面的滚动的开始和结束

    vue如何监听页面的滚动的开始和结束

    这篇文章主要介绍了vue如何监听页面的滚动的开始和结束,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 关于vue3 option api新玩法分享

    关于vue3 option api新玩法分享

    vue3新特性中最重要、内容最多的组合式api,组合式api既可以解决之前vue2开发的痛点,又提升了性能,下面这篇文章主要给大家介绍了关于vue3 option api新玩法的相关资料,需要的朋友可以参考下
    2022-06-06
  • vue 挂载路由到头部导航的方法

    vue 挂载路由到头部导航的方法

    本篇文章主要介绍了vue 挂载路由到头部导航的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 详解Vue3-pinia状态管理

    详解Vue3-pinia状态管理

    这篇文章主要介绍了Vue3-pinia状态管理,pinia是 vue3 新的状态管理工具,简单来说相当于之前 vuex,它去掉了 Mutations 但是也是支持 vue2 的,需要的朋友可以参考下
    2022-08-08
  • element tab标签管理路由页面的项目实践

    element tab标签管理路由页面的项目实践

    本文主要介绍了element tab标签管理路由页面的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • vue内置组件component--通过is属性动态渲染组件操作

    vue内置组件component--通过is属性动态渲染组件操作

    这篇文章主要介绍了vue内置组件component--通过is属性动态渲染组件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 创建项目及包管理yarn create vite源码学习

    创建项目及包管理yarn create vite源码学习

    这篇文章主要为大家介绍了创建项目及包管理yarn create vite源码学习分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 面试最常问的13种Vue修饰符

    面试最常问的13种Vue修饰符

    修饰符也是Vue的重要组成成分之一,利用好修饰符可以大大地提高开发的效率,接下来给大家介绍一下面试官最喜欢问的13种Vue修饰符,感兴趣的可以了解一下
    2021-07-07

最新评论