美文网首页
axios post传递参数的坑

axios post传递参数的坑

作者: 梁风有意 | 来源:发表于2018-09-18 15:33 被阅读0次

HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中。(Content-Type为application/x-www-form-urlencoded)

但是使用axios post请求的时候,如果不显式的设置Content-Type,则默认为text/plain,这时服务器就不知道怎么解析数据了。
所以需要设置Content-Type。

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

可是光这样还不行,我们还需要对传递的参数data做处理,处理成name=value&name1=value1的形式,可以借助qs。

先引入qs,然后调用qs的stringify方法。

import axios from 'axios';
import qs from 'qs';
Vue.prototype.$qs = qs;

let postData = this.$qs.stringify({
    key1:value1,
    key2:value2,
    key3:value3,
});

如果参数中含有数组,可以给qs.stringify第二个参数处理数组格式:

qs.stringify({ids: [1, 2, 3]}, { indices: false })
 //形式: ids=1&ids=2&id=3
qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘indices‘})
 //形式: ids[0]=1&aids1]=2&ids[2]=3
qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘brackets‘})
 //形式:ids[]=1&ids[]=2&ids[]=3
qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘repeat‘}) 
//形式: ids=1&ids=2&id=3

相关文章

  • axios post传递参数的坑

    HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后...

  • vue项目配置跨域

    在config文件夹下的index文件里 axios发送post请求,传formdata参数 要传递不同类型的参数...

  • axios的post方法传递参数

  • axios 中get/post请求类型参数总结

    get请求 get请求参数就是将参数拼接到url地址 post 请求 直接传递js对象,axios根据类型自动转化...

  • qs.stringify和json.stringify的相关用法

    使用axios向后台post数据的时候,简单的一维数组就直接使用post方法,同时参数名用data的形式传递,此时...

  • Axios POST FormData格式请求

    目录 前言 使用axios进行post请求的时候,默认是传递的json格式的参数,当接口需要FormData格式的...

  • 解决axios post传递参数为空

    以前都是用 vue resource,因为官方推荐使用axios,就尝试了一下。但发现使用post方法传递的数据后...

  • http请求参数问题

    axios请求参数为数组时 解决思路前端转换直接拼接url地址 -axios post参数获取不到问题

  • ajax

    post传对象 axios.post:返回promise对象 url参数:拼接 body参数:传对象 1.无参数g...

  • vue学习

    3.网络应用介绍 3.1 axios的使用 axios.get请求,请求参数跟在地址?后面 axios.post请...

网友评论

      本文标题:axios post传递参数的坑

      本文链接:https://www.haomeiwen.com/subject/afhpnftx.html