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日

相关文章

  • python遍历数组的三种方法

    Python遍历数组的三种方法 在Python中,遍历数组是日常编程中必须操作之一。本文将介绍三种遍历数组的方法,分别为 for 循环、while 循环和 numpy.nditer() 方法。 1. for循环 for循环是Python中最基础的循环方式,同样适用于Python中的数组遍历。语法如下: for element in array: # do s…

    其他 2023年3月29日
    00
  • LINUX下的文件结构介绍

    让我们来详细讲解一下Linux下的文件结构介绍。在Linux系统中,文件系统被组成为一个树状的结构,称为目录树。在目录树中,根目录是所有目录的起点,表示为“/”。下面是Linux下的目录树结构简图以及每个目录的作用: / ├── bin:系统命令目录,包含许多常用的命令,如ls、cd、grep等。 ├── boot:系统启动目录,包含Linux内核和引导程序…

    other 2023年6月26日
    00
  • Smart210学习记录—nand flash驱动

    概述 Smart210是一款基于ARM Cortex-A8架构的开发板,可以用于嵌入式系统开发。在Smart210中,我们可以使用nand flash存储数据。本文将为您提供一份完整攻略,介绍如何在Smart210中实现nand flash驱动,并提供两个示例说明。 Smart210 nand flash驱动的完整攻略 步骤1:配置硬件 在实现nand fl…

    other 2023年5月5日
    00
  • 详解Android Studio正式签名进行调试的实现步骤

    下面是详解Android Studio正式签名进行调试的实现步骤的攻略。 什么是Android Studio正式签名? Android Studio正式签名是将应用程序的发布版本使用数字签名认证,以保证应用的可靠性、完整性和安全性。在发布应用程序时,将使用这个数字签名文件进行签署应用程序,以保证手机应用的安全,防止被篡改。并且在正式发布应用程序时,Googl…

    other 2023年6月26日
    00
  • Android 自定义View手写签名并保存图片功能

    Android 自定义View手写签名并保存图片功能 本攻略将详细介绍如何在Android应用中实现自定义View手写签名并保存图片的功能。 步骤一:创建自定义View 首先,我们需要创建一个自定义View来实现手写签名的功能。可以继承View类或者使用现有的绘图库,如Canvas和Paint。 示例代码: public class SignatureVie…

    other 2023年10月13日
    00
  • Android读取properties配置文件的实例详解

    Android读取properties配置文件的实例详解 什么是properties配置文件 Properties配置文件是一种简单的键值对存储结构,通常用于存储应用程序的配置信息,其格式如下: key1=value1 key2=value2 key3=value3 其中,”=”前面的是键名,”=”后面的是键值,两者之间使用”=”进行分割,每行代表一个键值对…

    other 2023年6月25日
    00
  • Android获取当前运行的类名或者方法

    获取当前运行的类名或者方法是一项重要的开发任务,对于Android开发者而言,使用Java反射机制就可以实现这一目标。以下是获取当前运行的类名或者方法的完整攻略: 方法一:使用StackTraceElement类 步骤一:获取当前执行器的StackTraceElement信息 StackTraceElement是Java反射机制中提供的一个类,可以获取当前执…

    other 2023年6月27日
    00
  • windows无法初始化这个硬件的设备驱动程序(错误代码37)的解决办法

    解决”Windows无法初始化这个硬件的设备驱动程序(错误代码37)” 如果设备管理器中出现了“Windows无法初始化这个硬件的设备驱动程序(错误代码37)”的提示,说明驱动程序有问题,需要进行一系列的操作来解决问题。 步骤一:卸载问题发生的设备 首先,我们需要在设备管理器中找到可能引起问题的设备,并进行卸载。操作步骤如下: 打开“设备管理器”(可以通过搜…

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