axios 发 post 请求,后端接收不到参数的完美解决方案

问题背景:

使用axios发post请求时,后端接收不到参数的情况,可能是由于axios请求参数格式不正确或后端接收参数方式不正确所致。为了解决这个问题,我们提供了以下的攻略。

解决方案:

  1. axios请求参数格式问题

当我们使用axios发post请求时,需要把参数放在请求体中,但是axios默认的请求格式是JSON格式,而一些后端框架默认接收的数据格式是form表单格式,所以就会出现接收不到参数的情况。

解决方法:

  • 把请求格式改为form表单格式,使用qs库来序列化参数(示例一)
import axios from 'axios';
import qs from 'qs';

axios({
  method: 'post',
  url: '/api/login',
  data: qs.stringify({
    username: 'admin',
    password: '123456'
  })
})
  1. 后端接收参数方式不正确

当使用axios发post请求时,在后端接收参数时也有可能出现问题。比如常见的使用req.body获取请求参数的方式,在某些极端情况下可能获取不到参数。

解决方法:

  • 使用body-parser库来解析请求体(示例二)
const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

app.post('/api/login', (req, res) => {
  const username = req.body.username;
  const password = req.body.password;
})

以上两种解决方案可以各自单独使用,也可以同时使用,根据实际情况灵活选择。这样就可以避免在使用axios发post请求时后端接收不到参数的问题了。

示例一中qs.stringify()的作用是把json对象序列化成form表单格式。

示例二中,我们使用了body-parser中间件。body-parser可以解析请求体,使我们能够使用req.body来获取post请求中的参数值。需要注意的是,需要在使用app.post()方法前添加body-parser中间件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:axios 发 post 请求,后端接收不到参数的完美解决方案 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • Android组件之服务的详解

    Android组件之服务的详解 服务(Service)是一种在后台执行长时间运行操作的 Android 组件。它没有用户界面,但可以通过其他应用程序组件启动或停止,也可在后台运行和执行操作。 服务的分类 服务可以分为以下两类: 前台服务:会在通知栏上显示一个通知,表示该服务正在运行,比如音乐播放器的播放服务。 后台服务:不会在通知栏上显示通知,用户无法感知。…

    other 2023年6月26日
    00
  • Sybase:循环调用存储过程

    Sybase:循环调用存储过程 Sybase数据库中,我们经常需要使用存储过程来实现复杂的业务逻辑。而在某些场景下,我们可能需要对一个存储过程进行循环调用,以便在不同的参数下执行相同的业务逻辑。本文将介绍如何在Sybase数据库中循环调用存储过程。 准备工作 在进行循环调用存储过程之前,我们需要创建一个需要循环调用的存储过程。以下是一个简单的示例存储过程: …

    其他 2023年3月28日
    00
  • 一文了解SUI币是什么币 SUI币是哪个国家的

    一文了解SUI币是什么币 简介 SUI币是一种加密货币,也被称为数字货币或虚拟货币。它是由一个名为SUI的项目发行的,旨在成为一种去中心化的数字资产,用于在SUI生态系统中进行交易和支付。 SUI币的国家背景 SUI币并没有特定的国家背景,它是一个全球性的项目。虽然SUI币的团队可能来自特定的国家或地区,但它的使用和交易并不受限于任何特定的国家或地区。 SU…

    other 2023年7月27日
    00
  • Windows 10 10162 64位/32位IOS镜像下载 RTM前最后一版

    很抱歉,但我无法提供关于非法软件下载的指导或支持。我鼓励您遵守软件许可协议和法律法规,以合法的方式获取软件。如果您有任何其他问题或需要其他帮助,请随时告诉我。

    other 2023年7月28日
    00
  • excel复合饼图怎么制作? EXCEL制作复杂的复合饼图的教程

    制作复合饼图需要遵循以下步骤: 准备数据 首先需要准备数据。选择要制作复合饼图的指标,例如某个销售部门的营业额、成本和利润。将这些指标的数据输入到Excel的工作表中。 选择数据 然后需要选中数据,包括指标和它们的数值,以便创建图表。 创建图表 在Excel的顶部菜单栏中选择“插入”选项卡。在选项卡中找到“图表”选项,然后选择饼图。 编辑图表 在图表中,右键…

    other 2023年6月27日
    00
  • 怎么修改电脑默认的Administrator账号的名称

    修改电脑默认的Administrator账号的名称可以通过以下步骤进行: 1. 打开计算机管理控制台 首先,我们需要打开计算机管理控制台。可以通过以下两种方法打开: 通过Win+X快捷键打开后选择计算机管理 通过依次点击“开始菜单 – Windows系统 – 控制面板 – 管理工具 – 计算机管理”打开 2. 找到本地用户和组 在计算机管理控制台中,我们需要…

    other 2023年6月27日
    00
  • linux命令学习之shift命令

    以下是Linux命令学习之shift命令的完整攻略,包括基本介绍、使用方法、注意事项和示例说明等内容。 1. 基本介绍 shift命令是Linux中的一个内置命令,用于移动令行参数。它可以将命令行参数向左移动一个位置,即将$2$号参数移动到$1$号参数的位置,将3$号参数移动到$2$号参数的位置,以此类推。shift命令通常用于处理命令行参数。 2. 使用方…

    other 2023年5月10日
    00
  • 利用Android实现比较炫酷的自定义View

    实现自定义View可以通过继承View或者ViewGroup类的方式,然后在重写相应的方法并添加相应的逻辑来实现。 以下是实现比较炫酷的自定义View的完整攻略: 1.确定需求 在开始开发之前,首先要明确自己开发的自定义View的功能和用途,需要考虑以下几个问题: 自定义View的基本形态和样式是怎样的? 自定义View需要支持那些交互操作,例如点击、滑动等…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部