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 相关文章推荐
理解Javascript_05_原型继承原理
Oct 13 Javascript
js charAt的使用示例
Feb 18 Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
Nov 01 Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 Javascript
jquery仿微信聊天界面
May 06 jQuery
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
Apr 12 Javascript
Servlet返回的数据js解析2种方法
Dec 12 Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 14 Javascript
React实现评论的添加和删除
Oct 20 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 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
用PHP实现WEB动态网页静态
2006/10/09 PHP
PHP4引用文件语句的对比
2006/10/09 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
javascript中对对层的控制
2006/12/29 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python else语句在循环中的运用详解
2020/07/06 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
业务助理岗位职责
2013/11/18 职场文书
简短大学毕业感言
2014/01/18 职场文书
运动会稿件200字
2014/02/07 职场文书
搞笑爱情保证书
2014/04/29 职场文书
建议书格式
2015/02/04 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
2016国庆促销广告语
2016/01/28 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
聊聊Python String型列表求最值的问题
2022/01/18 Python
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis