axios—使用axios请求REST接口—发送get、post、put、delete请求

news2025/1/21 18:43:29

文档:GitHub - axios/axios: Promise based HTTP client for the browser and node.js

目录

一、axios发送get请求

简写版get请求

完整版get请求

get请求怎么在路径上携带参数

二、axios发送post请求

简写版post请求

完整版post请求

其他方式发送post请求

三、axios发送put请求

简写版 put请求

完整版put请求

四、axios发送delete请求删除操作

简写版delete请求

完整版delete请求

其他delete请求的方式:


一、axios发送get请求

我们使用get请求可以得到我们想要的具体的数据

then方法指定成功时候的回调

<button onclick="testGet()">Get请求</button>

简写版get请求

    // 发送get请求
    function testGet(){
        // 这个参数是添加请求地址
        axios.get('http://localhost:3000/posts')
        // 使用.then获取数据
             .then(response=>{
                console.log('/posts get请求',response.data)
             })
        
    }

完整版get请求

         // 指定默认配置
         axios.defaults.baseURL='http://localhost:3000'


         //  axios.get('http://localhost:3000/posts?id=1')     之前的写法 
        // 传入配置对象的方式
        axios({
            // url:'http://localhost:3000/posts',
            // 因为我们配置了 axios.defaults.baseURL='http://localhost:3000' 这里可以用简写方式
            url:'/posts',
            // 请求参数
            params:{
                id:1
            }
          }) .then(response=>{
                console.log('/posts get请求',response.data)
             })

get请求怎么在路径上携带参数

直接拼接到url上面就可以了

    @GetMapping("/getQueryPage/{currentPage}/{pageSize}")
    public ResultObject getQueryPage(@PathVariable("currentPage") int currentPage,
                                     @PathVariable("pageSize") int pageSize,  Book book){

        IPage<Book> ipage= bookService.getQueryPage(currentPage,pageSize,book);
//        ResultObject r = new ResultObject(true,ipage);

        return new ResultObject(true,ipage);
    }
    // 请求服务器获取所有书籍信息
       getAllBooks(){
        // 第一个books是代理服务器中我们配置的
        this.$http.get('/books/books/getQueryPage/'+this.pageNum+'/'+this.pageSize,this.queryBooks)
          .then(
            response=>{
                // console.log("get books",response.data.data)
                // this.booksList=response.data.data
                // console.log(this.booksList)

                console.log("get books",response.data.data)


            },
            error=>{
              this.$message.error('服务器错误,获取书籍列表失败')
            }
          )
       },

 

其他方式发送get请求

    data(){
        return{
            // 查询条件
            queryInfo:{
                type:3,
                pagenum:1,
                pagesize:5
            },
            // 商品分类的数据列表,默认为空
            catelist:[]
        }
    },
    created(){
       this.getCateList()
    },
    methods:{
        // 获取商品分类数据
       getCateList(){
          this.$http.get('categories',{params:this.queryInfo})
       }
    }

二、axios发送post请求

我们可以操作post请求增加一条或者多条数据,可以采用JSON的形式传输数据

<button onclick="testPost()">Post请求</button>

简写版post请求

// 发送post请求
    function testPost(){
        // post请求的数据以对象的形式传输
        axios.post('http://localhost:3000/posts',  { "title": "json-server3", "author": "typicode3" })
        .then(response=>{
            console.log('/posts post请求',response.data)
        })
    }

完整版post请求

// 指定默认配置
axios.defaults.baseURL='http://localhost:3000'   

      axios({
            url:'/posts',
            method:'post',
            // json字符串的格式
            data:{ 
                   "title": "json-server3", 
                   "author": "typicode3"
                 }
        }) .then(response=>{
            console.log('/posts post请求',response.data)
            })

其他方式发送post请求

        // {rids:idStr}  服务器需要传输一个rids的请求体
        this.$http.post(`roles/${this.roleId}/rigths`,{rids:idStr})

      // 真正的还书方法
      returnBook(){
         // 表单先预验证一下
         this.$refs.returnBooksRef.validate(valid=>{
            if(!valid){
               return   this.$message.error("密码不可为空,无法还书!")
            }

            // 验证密码
            if( !(this.userPassword===this.returnBooksList.password)){
                 return this.$message.error("密码错误,无法还书!")
            }
            // console.log("returnBooksList 发送请求前",this.returnBooksList)  没问题
         // 运行到这个地方说明密码正确
         //最重要的一步:发请求还书 
            this.$http.post("/borrowBookProxy/borrowBooks/returnBooks",this.returnBooksList)
                .then(
                  response=>{
                     // console.log("returnBooksList",this.returnBooksList)  没问题
                     console.log("return return",response.data)
                     if(!response.data.data){
                      return  this.$message.error("还书失败!请您刷新列表检查是否需要归还此书!")
                     }
                     this.$message.success("归还书籍成功!")
                     this.returnBooksList.password=''
                     this.getUser()
                     this.returnBookDialogVisible=false
                  },
                  error=>{
                  this.$message.error("服务器出现错误,稍后重试")
                }
                )
         })
      },

三、axios发送put请求

我们采put请求修改数据,可以具体修改某一条数据

<button onclick="testPut()">PUT请求</button> 

简写版 put请求

    // 发送put请求修改
    function testPut(){
        // 修改id=3的内容,修改为后面的参数
        axios.put('http://localhost:3000/posts/3',  { "title": "json-server....", "author": "typicode3..." })
          .then(response=>{
        console.log('/posts put请求',response.data)
    })
    }

完整版put请求


        axios({
            // url:'/posts',
            // params:{
            //   id:1
            // },
            url:'/posts/1',   //这个是上面的简写形式
            method:'put',
            data: {
                 "title": "json-server....", 
                 "author": "typicode3..."
                 }
        }).then(response=>{
        console.log('/posts put请求',response.data)
    })

四、axios发送delete请求删除操作

 <button onclick="testDelete()">DELETE请求</button>

简写版delete请求

    // 发送delete请求修改
    function testDelete(){
        // 删除id=3的数据
        axios.delete('http://localhost:3000/posts/3')
          .then(response=>{
        console.log('/posts delete请求',response.data)
    })
    }

完整版delete请求

    axios({
       url:'/posts/3',
       method:'delete'
    }).then(response=>{
        console.log('/posts delete请求',response.data)
    })

其他delete请求的方式:

removeRightById(role,rightId){

 this.$http.delete(`roles/${role.id}/rights/${rightId}`)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/408507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HBuilderX 安装教程

&#x1f48c; 所属专栏&#xff1a;【软件安装教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496…

element日期选择器el-date-picker样式

1、基本用法 代码&#xff1a; <el-date-pickertype"date"v-model"valueStart"value-format"yyyy-MM-dd"placeholder"开始时间" ></el-date-picker>代码解读&#xff1a; type参数是用来定义选择器选择的对象&#xff…

【汇总3种】vue项目中【H5】如何处理后端返回的支付宝form表单,如何实现支付跳转?

背景&#xff1a; 现在的项目&#xff0c;都需要付款&#xff0c;难免涉及支付宝或者微信支付。如果是支付宝支付&#xff0c;很多人都说&#xff0c;都已经2202年了&#xff0c;支付宝返回的还是form表单&#xff0c;然后&#xff0c;唤起支付宝的界面。 一般来说&#xf…

【JavaScript 进阶教程】汽车商城根据价格区间筛选车辆案例

本案例源码链接&#xff08;非VIP可私聊获取&#xff09;&#xff1a;https://download.csdn.net/download/weixin_52212950/86286910https://download.csdn.net/download/weixin_52212950/86286910 文章导读&#xff1a; 这篇文章实现一个小案例&#xff1a;在购物平台选商品…

axios二次封装(详细+跨域问题)

一&#xff0c;为什么要对axios进行二次封装&#xff1f; 答&#xff1a;主要是要用到请求拦截器和响应拦截器; 请求拦截器&#xff1a;可以在发请求之前可以处理一些业务 响应拦截器&#xff1a;当服务器数据返回以后&#xff0c;可以处理一些事情 二&#xff0c;axios的二次…

html/javascript实现简单的上传

一、 上传用到的按钮类型是type file 二、 为了美化上传按钮&#xff0c;我们通常会自定义按钮&#xff0c;将默认的上传隐藏掉。 fileInputs.click() 触发上传按钮点击 三、 new FileReader() 读取文件内容方法&#xff1a; readAsText() 读取文本文件&#xff0c;(可以使用…

NodeJs - for循环的几种遍历方式

NodeJs - for循环的几种遍历方式一. for循环的几种遍历方式1.1 遍历的目标不一样1.2 空属性的遍历1.3 异步的调用二. 总结一. for循环的几种遍历方式 我们先来看下for循环的4种不同遍历方式&#xff1a; const arr [10,20,30,40,50];for (let i 0; i < arr.length; i) {…

VUE 年份范围选择器

VUE 年份范围选择器遇到一个需求,需要写一个年份选择器,是范围的年份选择器,比如:xxx年到xxx年 在使用elment UI的时候发现没有这种功能,于是采用el-date-picker 的年份选择器自己后封装了一个年份范围选择器 由于组件使用的地方很多,所以格式化都在组件中处理,回传格式在回传的…

Vue项目实战-vue2(移动端)

Vue项目实战(移动端)# 相关资料(一) 创建项目(二) 禁用Eslint(三) devtool(四) 添加less支持(五) vue路由配置(背诵)(六) 父子组件通信(背诵)(七) axios拦截器(背诵)(八) Sticky 粘性布局(九) 图片懒加载(十) 全局注册组件(十一) slot插槽(十二) 使用ui库需要关注的三点(十三)…

【Vue】Vue的安装

&#x1f3c6;今日学习目标&#xff1a;Vue3的安装 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人格言&#xff1a;生如芥子&#xff0c;心藏须弥 ⏰本期期数&#xff1a;第一期 &#x1f389;专栏系列&#xff1a;Vue3 文章目录前言Vue3安装独立版本CDN安装第一个Vue程序总…

vue递归组件—开发树形组件Tree--(构建树形菜单)

在 Vue 中&#xff0c;组件可以递归的调用本身&#xff0c;但是有一些条件&#xff1a; 该组件一定要有 name 属性要确保递归的调用有终止条件&#xff0c;防止内存溢出不知道大家有没遇到过这样的场景&#xff1a;渲染列表数据的时候&#xff0c;列表的子项还是列表。如果层级…

Vue基础--webpack介绍以及基础配置

写在最前&#xff1a;实际开发中需要自己配置webpack吗&#xff1f; 答案&#xff1a;不需要&#xff01; 实际开发中会使用命令行工具&#xff08;俗称CLI&#xff09;一键生成带有webpack的项目开箱即用&#xff0c;所有webpack的配置项都是现成的&#xff01;我们只需要知道…

python web开发基础

网站是存储在服务器上的文件&#xff0c;服务器是托管网站的计算机。这些服务器连接到一个称为 Internet 的网络。访问这些网站的计算机称为“客户端”。 要访问网站需要知道其IP地址&#xff0c;IP 地址是一串唯一的数字。每个设备都有一个 IP 地址。可以在控制台cmd输入命令…

前端笔记(10) Vue3 Router 监听路由参数变化

前言 Vue Router是开发Vue项目的必不可少的工具&#xff0c;也是极为重要的学习要点。 本篇介绍下Vue Router的基础使用和如何监听路由参数变化。 Vue Router入门 1 安装Router 安装Vue Router非常方便&#xff0c;只需执行一个命令&#xff0c;如果还不知道怎么搭建Vue项目…

详解 HttpServletResponse

详解 HttpServletResponse 核心方法代码示例1.设置响应状态码2.设置响应头3.设置响应内容&#xff08;1&#xff09;响应一个网页&#xff08;简单HTML&#xff09;&#xff08;2&#xff09;响应一个网页&#xff08;复杂HTML&#xff09;返回已有的一个网页1.重定向2.转发返回…

uniapp - 编译微信小程序项目的微信授权登录、获取微信手机号登录、最新版微信直接登录、手机与验证码登录的示例源码(适用于 uniapp 微信小程序项目,源代码直接开箱即用)超级详细的代码及注释

效果图 uniapp 项目编译微信小程序,一些常见的登录方式及源代码,示例代码干净整洁无BUG拿来即用。 本文示例实现了 uniapp 微信小程序项目的登录功能,包含微信授权登录、获取微信手机号登录、最新直接登录等, 你可以选择一个,直接复制源代码,稍微改改就能应用到你的项目…

后台管理系统

后台管理系统主要是我们内部人员使用的一款用来管理我们产品的一个系统&#xff0c;然后呢&#xff0c;我们今天写的呢是一个电商的后台管理系统。主要是可以用来管理我们的用户还有我们是商品的。 我们这个系统呢采用的是一个前后端分离的模式&#xff0c;主要是使用后端给我…

Vue 当页面进入全屏状态时element-ui的el-select下拉菜单不显示问题

在前两天进行页面全屏时&#xff0c;一切都还好好的&#xff0c;可当使用element-ui中的el-select时&#xff0c;下拉菜单却怎么也显示不出来&#xff0c;但只要退出全屏状态&#xff0c;立马就好。 非全屏时&#xff1a; 全屏时&#xff1a; 开始我以为是层级问题&#xff0…

前端加载高德离线地图的解决方案

核心是需要下载地图瓦片放在本地&#xff0c;脱离在线地图服务&#xff0c;实现离线加载地图。使用BIGMap工具下载地图离线瓦片到本地 下载地址&#xff1a;http://www.bigemap.com/reader/download/detail201802015.html BIGEMAP GIS Office-全能版需要注册试用版&#xff08;…

web前端面试宝典——带你直击面试重难点(40个经典题目,涵盖近90%的考点,码字2w,干货满满!)

系列文章目录 JavaScript 知识梳理&#xff0c;收录了web前端面试 95%以上 的高频考点&#xff0c;满满的干货。给你做一个高效的知识梳理&#xff0c;为你的面试保驾护航&#xff01; 内容参考链接HTML & CSS 篇HTML & CSS 篇JavaScript 篇&#xff08;一&#xff09;…