继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于使用vue提交数据问题

211103
关注TA
已关注
手记 7
粉丝 10
获赞 66

最近在项目中用vue与后台对接时遇到一些问题发现利用vue自带的http方式传递后台参数时会出现一些问题。
在控制台的network 我们会发现本次发送参数使用的是payload,而并不是以前我们利用ajax等传后台参数时所用的from data形式,这就导致后台利用以前的方式是无法接收到参数的。此时我们需要将请求头进行更改,将Content-Type改为application/x-www-form-urlencoded;charset=UTF-8 这样就会变为form data 方式提交数据。在请求中

Vue.$http({
  url: '/user',
  method: 'post',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  },
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
})

之后请求数据已成功转为from data ,若在运行时from data中参数形式为
{“name”:“zhangsan”,“age”:16} : 而不是常规的
name: zhangsan
age : 16 这种形式,需要在请求中更改参数格式利用transformRequest

Vue.$http({
  url: '/user',
  method: 'post',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  },
  transformRequest: [function (data) {
    // Do whatever you want to transform the data
    let ret = ''
    for (let it in data) {
      ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
    }
    return ret
  }],
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
})
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP