使用vue插件axios传数据的Content-Type及格式问题详解

1.一般来说,前后台对接,常用的Content-Type有:

application/json,application/x-www-form-urlencoded 以及 multipart/form-data,当我们使用axios时,一般不需要我们主动去设置Content-Type,而是跟着我们传的数据格式自动适应。

2.get请求

get请求时传递的参数是会出现在url里面的,我们使用aixos传递get请求时可用格式如下
(1)将参数拼接在url里

this.$axios({
	method: 'get',url: this.$store.state.api1 
		+ '&username=' + 'xxx' 
		+ '&password=' + 'xxx'
})

(2)将参数放入params对象里

this.$axios({
	method: 'get',url: this.$store.state.api1,params: {
		username: 'xxx',password: 'xxx'
	}
})

3.post请求

(1)当我们要传对象时,此时的 Content-Type 为 application/json 类型,传递的格式如下,将传递的参数放入对象中:

this.$axios({
	url: this.$store.state.api1,method: 'post',data: {
		username: 'xxx',password: 'xxx'
	}
})

(2)当我们要传字符串时,Content-Type 为 application/x-www-form-urlencoded 类型,传递的格式有如下:

this.$axios({
	method: 'post',data: 'username=' + 'xxx'
		+ '&password=' + 'xxx'
	})
this.$axios({
method: 'post',data: qs.stringify({
	username: 'xxx',password: 'xxx'
})

(3)当我们要传文件时,Content-Type 需要使用 multipart/form-data,格式如下:

// 获取文件
let input = document.querySelector('.input_file')
let curFiles = input.files

// 将文件放入formData中
let formData = new FormData()
for(let file of curFiles){
	formData.append('files',file)
}

// 将需要传递的参数放入formData中
formData.append('username','xxx')
formData.append('password','xxx')

// 调接口
this.$axios({
	url: this.$store.state.api1,data: formData
})

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
<el-form-item label="入库类型" ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...