VUE post请求设置为formdata传参

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VUE post请求设置为formdata传参相关的知识,希望对你有一定的参考价值。

参考技术A 在vue-cli脚手架项目中,我们通常遇过发送axios请求,后台接受不到数据,试了下ajax请求,后台便可以接收到数据,对比两者的请求,发送有一点区别,就是请求参数的区别

//利用axios拦截器来进行转换,只需要转换一次

axios.interceptors.request.use(function (config)

//请求头转换为表单形式

  config.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'

  config.transformRequest = [function (data)

 // 在请求之前对data传参进行格式转换

​    data = Qs.stringify(data)

​    return data

  ]

  return config

, function (error)

  return Promise.reject(error)

)

//接下来发出去的post请求就是已formdata进行传参

vue post 参数格式 form_data

参考技术A main.js

设置请求头

headers: 'content-type':'application/x-www-form-urlencoded; charset=UTF-8'

// 设置完以后 传入的params对象就会时候用formdata传参的方式

以上就是改变传参的方式,嗯。。很简单,但是光这样还不够。还需要把传入的参数转化成正常的参数而不是键值对

import qs from 'qs'

// axios自带的工具不需要安装npm依赖

axios.post(url,qs.stringify(params), headers: 'Content-Type':'application/x-www-form-urlencoded');

// 到此基本解决。。。

感谢: 参考1 & 参考2

以上是关于VUE post请求设置为formdata传参的主要内容,如果未能解决你的问题,请参考以下文章

vue中post请求设置参数为formData的形式

Vue:axios中POST请求传参问题---传递数组 (补充)

vue post 参数格式 form_data

axios中post传参方式

爬虫scrapy组件 请求传参,post请求,中间件

Vue:axios中POST请求传参问题