axios 的post请求坑

最近在学习和实践Vue,搭建了vue+koa的前后端分离架构。vue请求采用的axios。但是遇到一个天坑,axios的post请求,后端接收不到参数。request.body中得到的是 ‘{‘param’:param}:’这种把参数全部变成key ,但是value没有值。
百度发现这是axios 中一段关键代码引起的,具体是什么代码没去考证,我就纳闷了,这么久了都没有解决,还是说我过去的传参方式已经被淘汰了? 先不管,我们先来解决问题。
网上有6中解决方案,我参考了一下,在axios的requet请求拦截器中,添加通过qs转换一下

//http request 请求拦截器
axios.interceptors.request.use(
    config => {
      config.data = qs.stringify(config.data);
      config.headers = {
        'Content-Type':'application/x-www-form-urlencoded'
      }
       if(store.state.token){
        axios.defaults.headers.common['Authorization'] = store.state.token
       }
      return config;
    },
    error => {
      return Promise.reject(err);
    }
  );

ok 问题解决

后端 直接通过 koa-bodyparser 自动解析

const app = new Koa();
const bodyparser = require('koa-bodyparser')
app.use(bodyparser())

  router.post('/addBanner',async(ctx,next)=>{
    ctx.body=ctx.request.body
  })
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容