gitbook浏览此随笔

出现场景

在使用koa-body 做文件上传的时候,发现使用DELETE请求时,request.body中的内容为空对象{}

app.js

//code...
const Koa = require('koa'); const koaBody = require("koa-body"); app.use(koaBody({
multipart: true,
formidable: {
maxFileSize: 200 * 1024 * 1024
}
}))
//...code

问题原因

查阅官方文档找到原因

strict {Boolean} DEPRECATED If enabled, don't parse GET, HEAD, DELETE requests, default true

strict 参数:如果启用,则不解析GET,HEAD,DELETE请求,默认为true

解决方案

//...code
app.use(koaBody({
multipart: true,
strict:false,//设为false
formidable: {
maxFileSize: 200 * 1024 * 1024
}
}))
//...code

接下来即可正常解析body中的内容

// 前端请求(jquery)
$.ajax({
url:`${baseUrl}/xxx`,
type:"DELETE",
headers:{
"content-type":"application/json"
},
data:{
name:"小明",
age:18
}
}).then(res=>{
console.log(res);
}) // 后端处理函数部分
const fn_testDelete=async(ctx,next)=>{
const {name,age}=ctx.request.body;
console.log(name,age);//小明 18
ctx.response.body={
code:200,
errMsg:"OK"
}
}

使用koa-body中间件后DELETE请求中ctx.request.body内容为空的更多相关文章

  1. spring mvc controller中获取request head内容

    spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public Str ...

  2. 部署Web API后Delete请求总是报 405(Method Not Allowed)解决办法

    WebDAV                   安装IIS的时候如果选择了WebDAV(Web Distribution Authorization Versioning) Publish,则所有的 ...

  3. Java日志使用slf4j 配置log4j后,有日志文件 但日志文件内容为空

    SLF4J的全称是Simple Logging Facade for Java,即简单日志门面. SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logg ...

  4. vb.net中让控件内容为空(Control类)

    在平常的敲系统中大家有没有遇到需要让Textbox控件或者其他的控件的显示内容为空,以前直接的做法是直接等于空值,如果此类控件有很多,都需要空值,难道都要设置一下它的值为空嘛,显然这是一个笨办法,有没 ...

  5. asp.net core webapi处理Post请求中的request payload

    request payload的Content-Type实际上是text/plain的,如果请求的 Content-Type 为 application/json,这将导致415 Unsupporte ...

  6. AJAX 请求中多出了一次 OPTIONS 请求 导致 Laravel 中间件无法对 Header 传入的 Token 无法获取

    背景知识: 我们会发现,在很多post,put,delete等请求之前,会有一次options请求.本文主要是来讨论一下这是什么原因引起的. 根本原因就是,W3C规范这样要求了!在跨域请求中,分为简单 ...

  7. Asp.Net Core IIS发布后PUT、DELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法(HTTP 谓词)

    一.在使用Asp.net WebAPI 或Asp.Net Core WebAPI 时 ,如果使用了Delete请求谓词,本地生产环境正常,线上发布环境报错. 服务器返回405,请求谓词无效. 二.问题 ...

  8. Koa系框架(egg/cabloy)如何获取微信支付回调请求中的xml参数

    背景 在Koa系框架(如EggJS)中进行微信支付开发时,遇到一个问题:微信支付平台会发送一个回调请求,通知支付订单的处理结果.该请求传入的参数是xml格式,而Koa中间件koa-bodyparser ...

  9. WEB API 中HTTP的get、post、put,delete 请求方式

    一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...

随机推荐

  1. Ubuntu环境下使用Maven编译并打包Java项目

    一.安装Maven 打开终端输入以下指令: $ mvn -v Apache Maven Maven home: /usr/share/maven Java version: 1.8.0_181, ve ...

  2. more 和less 命令简单介绍以及使用

    一.more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 ...

  3. 洛谷P2325 [SCOI2005]王室联邦

    P2325 [SCOI2005]王室联邦 题目描述 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理. 他的国家有n个城市, ...

  4. mysql 表查询结果 总行数计算

    一般的查询语句是这样的 SELECT  id,name FROM SystemEvents WHERE  1=1 limit 9,10 SELECT  * FROM SystemEvents WHER ...

  5. C++ 类设计核查表

    参考:https://www.jianshu.com/p/01601515ca31 <大规模C++程序设计> 函数接口: 1.运算符或非运算符函数? 2.自由或成员运算符? 3.虚函数或非 ...

  6. NPM 的基本使用

    最近闲来无事,将之前的零散笔记整理到博客园,如有错误欢迎指教. 1,常用npm命令 npm list // 查看本地已安装模块清单 npm view vux versions 现在的vux包在npm服 ...

  7. 修改cmd命令默认路径

    未修改之前: 修改方法: 1.win+r打开运行对话框,输入 regedit 打开注册表编辑器 2.在注册表中找到:HKEY_CURRENT_USER\Software\Microsoft\Comma ...

  8. 转:Eclipse中设置编码的方式

    来源:http://blog.csdn.net/jianw2007/article/details/3930915 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Ja ...

  9. 关于 ros

    1.https://mikrotik.com/download   下载 x86 架构的 cd image  (当日这是试用版,特殊版下载后道理一样) 2.exsi 上传,并新建 linux 的 其他 ...

  10. Spring注解驱动(下)

    9.@PropertySource 加载配置文件 在xml中 我们加载property配置文件,是使用 <context:property-placeholder location=" ...