[VUE]vue 集成 axios 发送post请求 payload导致后台无法接收到数据问题

vue 集成axios之后,发送的post请求默认为payload 方式。 如果想改为正常的方式,需要增加headers头,并且将发送是数据json格式改为 querystring的方式。

安装依赖

cnpm install qs

导入依赖

import Qs from 'qs'

request.js

service.interceptors.request.use(
  config => {
    if (store.getters.token) {
      config.headers['token'] = getToken()
    }
    if (config.data instanceof FormData) {
      //formdata类型的对象 通过QS转换后  后台无法收到数据
    } else {
      config.data = qs.stringify(config.data) // 转为formdata数据格式
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

axios 请求的默认 Content-Type 是 application/json,

post + queryString 格式的请求 body 对应的 Content-Type 是 application/x-www-form-urlencoded

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!