首页 > 其他分享 >Axios 的 put 请求实践:实现前端与后端的数据同步

Axios 的 put 请求实践:实现前端与后端的数据同步

时间:2023-09-08 12:32:41浏览次数:45  
标签:axios 请求 前端 PUT json Axios put users

在前端开发中,我们经常需要与后端服务器进行数据交互。其中,PUT 请求是一种常用的方法,用于向服务器发送更新或修改数据的请求。通过发送 PUT 请求,我们可以更新服务器上的资源状态。

Axios 的 put 请求实践:实现前端与后端的数据同步_put

Axios 是一个流行的 JavaScript 库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API,使得发送 PUT 请求变得十分便捷。在本文中,我们将探讨 Axios 的 PUT 请求使用方法,并介绍不同的传参写法。

Axios PUT 请求的使用方法

Axios 的使用前提是在项目中安装了 Axios。如果你还未安装,可以通过以下命令安装:

npm install axios

或

yarn add axios

接下来,我们就可以在代码中引入并使用 Axios 进行 PUT 请求。

首先,在你的 JavaScript 文件中,使用以下方式引入 Axios:

import axios from 'axios';

然后,我们可以通过 Axios 的 put 方法来发送 PUT 请求。下面是基本的使用方式:

axios.put(url, data, config)
  .then(response => {
    // 请求成功后的处理
  })
  .catch(error => {
    // 请求失败后的处理
  });
  • url: 要发送 PUT 请求的服务器端地址。
  • data: 要发送的数据,通常是一个 JavaScript 对象,会被转换成 JSON 格式发送到服务器端。
  • config: 可选参数,用于设置请求的配置,如请求头等。

常用的传参写法

接下来,我们将介绍几种常见的传递参数的写法。

1.在 URL 中传递参数

可以将参数直接拼接在 URL 中,这是最常见的传参方式:

const userId = 123;
const newData = {
  name: 'John Doe',
  age: 30
};

axios.put(`/api/users/${userId}`, newData)
  .then(response => {
    // 请求成功后的处理
  })
  .catch(error => {
    // 请求失败后的处理
  });

在上述例子中,我们将 userId 直接拼接在 URL 的末尾,将 newData 作为请求体发送给服务器。

2. 使用 URL 参数

可以使用 Axios 提供的 params 参数来传递 URL 参数:

const userId = 123;
const newName = 'John Doe';

axios.put('/api/users', null, {
  params: {
    id: userId,
    name: newName
  }
})
  .then(response => {
    // 请求成功后的处理
  })
  .catch(error => {
    // 请求失败后的处理
  });

在上述例子中,我们将参数作为一个对象传递给 params,Axios 会将其拼接在 URL 后面。

3. 使用请求体传递参数

除了上述两种方式,我们还可以将数据作为请求体传递:

const userData = {
  id: 123,
  name: 'John Doe',
  age: 30
};

axios.put('/api/users', userData)
  .then(response => {
    // 请求成功后的处理
  })
  .catch(error => {
    // 请求失败后的处理
  });

在这种方式中,我们直接将参数对象 userData 作为第二个参数传递给 put 方法。

实践案例

现在,让我们通过一个实践案例来进一步了解如何使用 Axios 的 PUT 请求。

1.安装 json-server

首先,你需要在项目目录下使用 npm 或 yarn 安装 json-server。

npm install -g json-server

然后,在项目目录下创建一个 JSON 文件,用于模拟你的数据。假设你要模拟的数据是用户数据,可以创建一个名为 users.json 的文件,并在其中定义用户数据。users.json 文件内容示例:

{
  "users": [
    { "id": 1, "name": "Alice", "age": 25 },
    { "id": 2, "name": "Bob", "age": 30 }
  ]
}

最后,在终端中运行以下命令,以启动 json-server 并指定模拟数据文件:

json-server --watch users.json --port 3000

这将启动一个模拟服务器,并监听端口 3000,使用 users.json 文件中的数据作为模拟的资源,如图所示:

Axios 的 put 请求实践:实现前端与后端的数据同步_前端_02

2.发送 put 请求

上面的 json-server 提供的路由可以为:

  • PUT http://localhost:3000/users/:userId 首先,在 IDE 编辑器中创建一个新的 JavaScript 文件(例如,putUser.js),然后粘贴以下代码,并用 node putUser.js命令在控制台运行。
const axios = require('axios');

const userId = 2; // 要修改的用户 id
const updatedData = { name: 'Updated Name', age: 35 };

axios.put(`http://localhost:3000/users/${userId}`, updatedData)
.then(response => {
  console.log('User updated:', response.data);
})
.catch(error => {
  console.error('Error updating user:', error);
});

注:如果报错,请确保是否安装了 axios,安装命令为npm install axios

该脚本使用 Axios 来发送 PUT 请求至 http://localhost:3000/users/:id 地址,将 ID 为 2 的用户信息更新为 { name: 'Updated Name', age: 35 }

Axios 的 put 请求实践:实现前端与后端的数据同步_axios_03

使用 Apifox 调试后端接口

Apifox = Postman + Swagger + Mock + JMeter,Apifox 支持调试 http(s)、WebSocket、Socket、gRPC、Dubbo 等协议的接口,并且集成了 IDEA 插件。在后端人员写完服务接口时,测试阶段可以通过 Apifox 来校验接口的正确性,图形化界面极大的方便了项目的上线效率。

在本文的例子中,就可以通过 Apifox 来测试接口。新建一个项目后,在项目中选择 “调试模式” ,填写请求地址后即可快速发送请求,并获得响应结果,上文的实践案例如图所示:

Axios 的 put 请求实践:实现前端与后端的数据同步_前端_04

提示、技巧与注意事项(续)

  • 使用合适的传参方式来发送 PUT 请求,根据你的需求选择合适的方式,拼接在 URL 中、使用 params 参数或将数据作为请求体传递。
  • 对于较复杂的请求,可以使用 Axios 的 config 参数来设置请求头、认证信息等。
  • 在实践中,根据后端 API 的具体情况,确保传递正确的参数和数据格式。
  • 使用 Promise 的 .then() 和 .catch() 方法来处理请求的成功和失败情况,以及相应的数据处理。
  • 建议在请求的 .catch() 中添加错误处理,防止出现未处理的异常。
  • 在处理请求时,可以根据服务器返回的状态码进行不同的处理,例如处理不同的错误情况或成功响应。
  • 使用开发者工具(如 Chrome 的开发者工具)来监视网络请求和响应,有助于调试和排查问题。

总结

Axios 是一个功能强大的 JavaScript HTTP 客户端库,可以方便地进行 PUT 请求,用于更新服务器上的资源状态。我们可以通过拼接 URL、使用 params 参数或将数据作为请求体传递,来实现不同的传参方式。在实践中,需要根据后端 API 的要求来选择合适的传参方式,并根据返回的状态码进行相应的处理。

知识扩展:

参考链接:

  1. Axios 官方文档:https://axios-http.com/docs/req_config
  2. Express 官方网站:https://expressjs.com/
  3. Chrome 开发者工具:https://developers.google.com/web/tools/chrome-devtools

标签:axios,请求,前端,PUT,json,Axios,put,users
From: https://blog.51cto.com/u_15964010/7408463

相关文章

  • 使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地
    【问题描述】使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地 【原因分析】实际上文件的流后端已经返回了,只是缺少了Content-Disposition属性返回,前端无法获取到文件名;privatestaticOutputStreamgetOutputStream(StringfileName,HttpServletRespon......
  • el-input 回车事件keydown刷新页面(白屏)
    因为触发了form表单的事件,禁用即可,@submit.prevent<el-form:model="form"[email protected]><el-form-itemlabel=""><el-inputv-model="form.code"placeholder=""......
  • web前端技能方法总结(css、js、jquery、html)
    CSS设置背景(background)背景颜色background-color背景图片background-image背景重复background-repeat:repeat-x/repeat-y背景位置background-position:bottom/left/top/right/center背景关联background-attachment:fixed/scroll综合写法:.tagName{background:#ffffffurl(“a......
  • 【前端】CSS-flexbox弹性盒模型布局
    目录一、前言二、flexbox简介三、属性1、容器属性2、容器成员属性四、容器属性的作用1、flex-direction①、定义②、语句1)、属性值③、代码示例1)、flex-direction:row2)、flex-direction:row-reverse3)、flex-direction:column4)、flex-direction:column-reverse2、flex-wrap①、......
  • 【前端】CSS3新特性
    目录一、前言二、伪元素选择器1、选择器2、注意事项3、代码示例三、伪元素清除浮动1、第一种伪元素清除浮动2、第二种伪元素清除浮动四、CSS3盒子模型1、box-sizing:content-box2、box-sizing:border-box五、CSS3图片模糊处理1、图片变模糊①、CSS3滤镜filter②、语法③、实例实现2......
  • 关于 axios 第一次请求,headers 无法获取到token,需要刷新后才可获取到的解决方案
    constinstance=axios.create({//baseURL:"http://175.30.32.3:48080",timeout:120000,headers:{Authorization:'Bearer'+getToken(),'Content-Type':'application/json;charset=UTF-8'},//开始是全局添加的......
  • 前端post请求用data传参数
    发post或者put请求的时候要带参数,那么就需要用data防止重复提交部分一秒钟只内只能提交一次原理如下:发了请求之后会将url和数据做一套封装,然后new一个time拿到当前时间戳从缓存里面拿到sessionObj的key,第一次拿是空的,走if的逻辑。然后把sessionObj存进去。第二次还是会去......
  • 有意思的bug:Input在谷歌浏览器下会出现异常显示问题!
    ❝这篇文章要感谢抖音:程序员小山与BUG!你说是bug吧也算是bug,不是bug吧也不是bug,不影响使用,触发情况也不多,但万一测试提了这个bug还是要解决的[doge],在此记录一下这个有意思的bug!❞Bug说明谷歌浏览器是前置条件还要加上input输入框但输入框要有2个附加条件:type是number以及css的te......
  • Tomcat_PUT方法任意写文件(CVE-2017-12615)
    目录Tomcat_PUT方法任意写文件(CVE-2017-12615)1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证工具扫描验证POC1.6、修复建议Tomcat_PUT方法任意写文件(CVE-2017-12615)说明内容漏洞编号CVE-2017-12615漏洞名称Tomcat_P......
  • 1.前端设计模式之单例模式
    无论从实现还是从理论定义上看,单例模式都是最简单的模式,没有之一。单例模式顾名思义就是在整个应用中只存在一个对象实例。 使用这种模式一般为了全局共享资源和出于性能考虑减少过多创建实例带来的性能和资源开销。 全局共享资源:比如全局配置对象,在项目中我们经常用到一些需要全......