为了账号安全,请及时绑定邮箱和手机立即绑定

axios提交FormData数据后在header中不显示

axios提交FormData数据后在header中不显示

PHP
Cats萌萌 2019-03-09 13:07:07
如果提交FormData数据 点击提交后header中没有Form Data或Request Payload 但是把axios.post('/login', formData, config)换成axios.post('/login', {a: 'a'}, config)就会有显示 搞了半天也搞不懂这是为什么?百度上的方法也试了 有的说是跨域的问题 我随便测试的任何一个地址都不行 Content-Type也加了还是不行 大家能帮我看看是哪里的问题吗?我搜站内也搜到一个同样的问题 这个问题好像也没有解决 https://segmentfault.com/q/10...sub () {       let formData = new FormData()       formData.append('name', 'aaa')       let config = {         headers: {          'Content-Type': 'multipart/form-data'         }       }       axios.post('/login', formData, config) }发送文本就会有显示 发送FormData什么都不显示
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

这样拦截请求做封装,主要是将 FormData 的 POST 请求和普通的 POST 请求分开处理了。

/**
 * 实例请求拦截函数
 * @param  {Object} config 请求配置信息
 * @return {Object | Promise}        请求配置信息或错误信息
 */instance.interceptors.request.use(  config => {    // Set token here
    config.headers['TICKET'] = getToken()    // transform post data to queryString
    if (config.method === 'post' && config.headers['Content-Type'] !== 'multipart/form-data') {
      config.data = Qs.stringify(config.data)
    }    // 文件上传
    // 只需要在Post请求时候将opts的headers属性设置为
    // { 'Content-Type': 'multipart/form-data' }
    // 即可。例:
    // const uploadImage = params => request('post', '/upload', params, {
    //   headers: {
    //     'Content-Type': 'multipart/form-data'
    //   }
    // })
    //
    // 下面以使用FormData的file字段名来保存文件举例。
    // 若为单图上传,则将File类型保存到字段名`file`中即可。
    // 若为多图上传,则需将File类型的数据数组保存在`file[]`形式的字段内。
    if (config.headers['Content-Type'] === 'multipart/form-data') {      const { data } = config      let fd = new FormData()      for (const key in data) {        if (data.hasOwnProperty(key)) {          if (key.endsWith('[]')) {
            data[key].forEach(item => {
              fd.append(key, item)
            })
          } else {
            fd.append(key, data[key])
          }
        }
      }

      config.data = fd
    }    return config
  },
  err => {    return Promise.reject(err)
  }
)


查看完整回答
反对 回复 2019-03-28
?
翻阅古今

TA贡献1780条经验 获得超5个赞

你打印console.log(formData.get("name"))看一下

查看完整回答
反对 回复 2019-03-28
  • 2 回答
  • 0 关注
  • 1551 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信