使用koa-body中間件後DELETE請求中ctx.request.body內容爲空

gitbook瀏覽此隨筆前端

出現場景

在使用koa-body 作文件上傳的時候,發現使用DELETE請求時,request.body中的內容爲空對象{}node

app.js

//code...
const Koa = require('koa');

const koaBody = require("koa-body");

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

問題緣由

查閱官方文檔找到緣由
jquery

文檔部分截圖

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

strict 參數:若是啓用,則不解析GET,HEAD,DELETE請求,默認爲truegithub

解決方案

//...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"
    }
}
相關文章
相關標籤/搜索