[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

1年前 评论