axios异步提交表单数据的几种方法


Posted in Javascript onAugust 11, 2019

踩坑Axios提交form表单几种格式

前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSecurity,使用postman测试后端的权限接口时发现都正常,但是使用vue+axios发送异步的请求后端一直获取不出axios提交的form表单的数据,爬坑两个半钟头找到了答案

axios用post异步形式提交的数据和我们直接使用from表单提交的数据的格式(Form Data格式)是不一样的,在下面列举

默认格式Request Payload

直接使用axios发送异步请求,没任何处理的代码如下:

const service = axios.create({})

doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data: pojo
 })

这种方式提交的表单格式是默认是RequestPayload, 它的长下面这个样子

axios异步提交表单数据的几种方法

可以看到,它的Contet-type是 "Content-Type": "application/json;"
但是后台的SpringSecurity对这种结果可不买单,在Request中解析不出任何数据来

处理成Form Data格式

使用插件qs, 安装命令如下:

npm install --save qs

请求编码:

const service = axios.create({})

 doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data: qs.stringify(pojo)
 })
 }
 
 或者
 
 doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data: pojo ,
  transformRequest: [function (data) {
  data = qs.stringify(data);
  return data;
  }],
 })
 }

经过这样处理的表单数据长成下面的这样, 这也是我们最常用的Form Data格式,这种格式的数据可以从后台的HttpRequest中把提交的属性解析出来

axios异步提交表单数据的几种方法

其他类型的Content-Type对应的表单数据格式

const service = axios.create({
 headers: {
  "Content-Type": "multipart/form-data; charset=utf-8;"
  }
})

 doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data: qs.stringify(pojo)
  })
 }

它长这样

axios异步提交表单数据的几种方法

const service = axios.create({
 headers: {
  "Content-Type": "multipart/form-data; charset=utf-8;"
  }
})

 doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data: pojo
  })
 }
---

axios异步提交表单数据的几种方法

const service = axios.create({
 headers: {
  "Content-Type": "multipart/form-data; charset=utf-8;"
  }
})

 doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data:pojo
  })
 }

axios异步提交表单数据的几种方法

const service = axios.create({
 headers: {
  "Content-Type": "application/x-www-form-urlencoded; charset=utf-8;"
 }
})

 doLogin (pojo) {
 return request({
  url: '/api/user/login',
  method: 'post',
  data: qs.stringify(pojo)
 })
 }

axios异步提交表单数据的几种方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
checkbox 多选框 联动实现代码
Oct 22 Javascript
基于prototype扩展的JavaScript常用函数库
Nov 30 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
详解Node.js中的Async和Await函数
Feb 22 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
Bootstrap4如何定制自己的颜色和风格
Feb 26 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
LayUI动态设置checkbox不显示的解决方法
Sep 02 Javascript
node.js实现带进度条的多文件上传
Mar 27 #Javascript
基于Express框架使用POST传递Form数据
Aug 10 #Javascript
Vue实现点击显示不同图片的效果
Aug 10 #Javascript
vue+eslint+vscode配置教程
Aug 09 #Javascript
一个手写的vue放大镜效果
Aug 09 #Javascript
详解Vue-cli3.X使用px2rem遇到的问题
Aug 09 #Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 #Javascript
You might like
DC动漫人物排行
2020/03/03 欧美动漫
第十三节 对象串行化 [13]
2006/10/09 PHP
一个PHP+MSSQL分页的例子
2006/10/09 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
layui实现三级联动效果
2019/07/26 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
python爬取淘宝商品销量信息
2018/11/16 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
Python进行特征提取的示例代码
2020/10/15 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
迟到检讨书900字
2014/01/14 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
信用卡工作证明模板
2014/09/14 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫