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

关于使用vue提交数据问题

标签:
Java Vue.js

最近在项目中用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'
  }
})
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
10
获赞与收藏
66

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消