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实现多级列表中的新建功能攻略 1. 概述 在Android应用中实现多级列表的新建功能,可以通过以下步骤完成: 创建数据模型:定义用于表示多级列表的数据模型,包含必要的属性和方法。 设计界面:创建用于显示多级列表的界面,包括列表视图和新建按钮。 实现适配器:创建适配器类,用于将数据模型与界面进行绑定。 处理新建事件:在新建按钮的点击事件中,添加…

    other 2023年8月26日
    00
  • mysql 5.7.10 安装配置方法图文教程

    MySQL 5.7.10 安装配置方法图文教程 MySQL是一款功能强大的关系型数据库管理系统,被广泛应用于Web应用开发中。本文将为您介绍MySQL 5.7.10的安装及配置方法,并提供图文教程指导您完成全过程。 1. 下载及安装 在MySQL官网(https://dev.mysql.com/downloads/mysql/5.7.html#downloa…

    other 2023年6月27日
    00
  • word另存为时提示在初始化要显示的根文件夹该怎么办?

    首先,需要明确一些概念,初始化要显示的根文件夹指的是在Windows文件资源管理器中显示的默认路径,也可以理解为默认保存路径。 要解决此问题,需要进行以下步骤: 打开Windows注册表编辑器(按下Win+R键,输入regedit,回车)。 找到以下注册表项: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\…

    other 2023年6月20日
    00
  • Mysql大小写敏感的问题

    MySQL大小写敏感的问题攻略 MySQL是一个常用的关系型数据库管理系统,它在处理大小写时有一些敏感性。本攻略将详细讲解MySQL大小写敏感的问题,并提供两个示例说明。 1. MySQL的大小写敏感性 MySQL在处理标识符(如表名、列名、变量名等)时,根据配置的不同,可能会对大小写敏感或不敏感。这取决于以下两个因素: 操作系统:在某些操作系统上,文件系统…

    other 2023年8月15日
    00
  • 利用shell编程实现DOS风格的Linux命令行

    利用shell编程实现DOS风格的Linux命令行 在本文中,我们将介绍如何使用shell编程实现DOS风格的Linux命令行。通过这种方式,我们可以使用类似于DOS的命令行界面来操作Linux系统。 我们可以将这个功能实现为一个脚本,然后通过将脚本添加到PATH环境变量中,使其能够在系统任何位置被执行。 以下是实现该功能的步骤: 1. 创建一个脚本 首先,…

    other 2023年6月26日
    00
  • 手机垃圾该清了!OPPOR9splus重启方法一看就会

    手机垃圾该清了!OPPO R9s Plus 重启方法一看就会 概述 手机是我们生活中使用最频繁的电子产品之一,但是长时间的使用会让手机产生垃圾文件和卡顿的现象。OPPO R9s Plus 也不例外,通过清理垃圾文件和重启手机可以让手机恢复到更为流畅的状态。 清理手机垃圾 1.清理缓存文件 缓存文件是在使用手机应用的过程中产生的,可以通过以下步骤来清理:1. …

    other 2023年6月26日
    00
  • CSS网页布局的核心内容:CSS盒模型

    CSS网页布局的核心内容: CSS盒模型攻略 CSS盒模型是网页布局中的核心概念之一。它描述了在网页中的每个元素都被看作是一个矩形的盒子,这个盒子由内容区域、内边距、边框和外边距组成。理解CSS盒模型对于实现灵活的网页布局至关重要。 盒模型的组成部分 CSS盒模型由以下四个部分组成: 内容区域(Content):盒子中用于显示文本、图像或其他内容的区域。 内…

    other 2023年9月6日
    00
  • idea下Android各目录所代表的含义介绍

    idea下Android各目录所代表的含义介绍 在使用IntelliJ IDEA进行Android开发时,项目中的各个目录有着不同的含义和用途。下面是对常见的Android项目目录的介绍: app:该目录是Android项目的主要模块,包含了应用程序的源代码、资源文件和配置文件等。在该目录下,通常会包含以下子目录: src:该目录包含了应用程序的源代码,按照…

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