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


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"
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM