使用axios对接数据格式问题

1.post请求常见的数据格式

  • Content-Type: application/json : 请求体中的数据会以json字符串的形式发送到后端
  • Content-Type: application/x-www-form-urlencoded:请求体中的数据会以普通表单形式(键值对)发送到后端
  • Content-Type: multipart/form-data: 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。

2.application/x-www-form-urlencoded

axios默认使用的content-type为application/json并且是以request payload的形式发送数据,如果要用axios提交form-data数据,需要对axios做一些配置,先安装插件axios和qs,用于格式化数据

npm install axios qs --savejs

其次在main.js中引入qs和axios

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

使用挂载后的axios请求数据

 this.$http.post(this.$main + '/user/login',this.qs.stringify(this.loginForm),{headers: {'content-type': 'application/x-www-form-urlencoded'}}).then(res => {console.log(res)})

3.multipart/form-data
如果以multipart/form-data格式提交数据,配置如下

let params = new FormData()params.append('file', this.file)params.append('id', localStorage.getItem('userID'))this.$http.post(URL, params, {headers: {'Content-Type': 'multipart/form-data'}}).then(res => {if (res.data.code === 0) {this.$router.go(-1)}}).catch(error => {alert('更新用户数据失败' + error)})

总结,使用axios发送post请求时,如果content-type为application/json,那么请求体中数据部分必须是一个json对象,例如

this.$http.post(this.$main + '/user/save', this.totalSubmitArray, {//this.totalSubmitArray是一个json对象headers: {'content-type': 'application/json;charset=utf-8'}}).then(res => {console.log(res)})

content-type为application/x-www-form-urlencoded或multipart/form-data时,请求体中数据必须是formdata格式,例如

let params = new FormData()params.append('file', this.file)params.append('id', localStorage.getItem('userID'))this.$http.post(URL, params, {headers: {'Content-Type': 'multipart/form-data'}}).then(res => {if (res.data.code === 0) {this.$router.go(-1)}}).catch(error => {alert('更新用户数据失败' + error)})

axios发送请求的数据格式相关推荐

  1. 使用axios发送请求(不带参数和带参数)和使用mockjs

    一.使用axios获取后端数据并使用(不带参数) 1.对axios进行封装 network/request.js import axios from 'axios' import nprogress ...

  2. php使用axios发送请求,axios源码之模拟实现axios发送请求

    axios内部运作流程大致如下axios入口- ->axios构造函数- ->interceptors请求拦截器- ->dispatchRequest方法- ->transfo ...

  3. vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)...

    vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete) 手把手式笔记 Axios配置 安装 axios ...

  4. axios发送请求,后端报错:所需的防伪表单字段“__RequestVerificationToken”不存在

    后端使用.net mvc开发,前端使用axios发送post请求遇到错误:所需的防伪表单字段"__RequestVerificationToken"不存在. 看到此提示我们知道原因 ...

  5. Vue安装并使用axios发送请求

    前言 本文主要介绍的是使用在Vue项目中安装并使用axios发送请求 axios介绍 axios是一种Web数据交互方式 它是一个基于promise的网络请求库,作用于node.js和浏览器中,它是 ...

  6. AJAX(GET POST请求、 jQuery axios 发送请求、跨域--cors、请求超时、网络异常、放弃请求、重复发送请求)

    根据视频进行整理 [https://www.bilibili.com/video/BV1WC4y1b78y?p=1] 视频资料 百度网盘: 链接:[https://pan.baidu.com/s/1n ...

  7. Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求

    Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios ...

  8. vue商城项目开发:axios发送请求及列表数据展示

    使用axios发送get请求 先install一下axios: 在main.js中全局引入axios: 仅仅在main.js中引入axios不会生效: 第二种解决方法如下,也是最常用的: 使用$htt ...

  9. vue2.0项目实战(3)使用axios发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

最新文章

  1. seaborn可视化displot绘制直方图(histogram)并通过axvline函数在直方图中添加中位数(median)竖线(自定义中位数竖线的线条形式)
  2. 高效程序猿之(四)VS2010其他技巧
  3. linux 命令输出保存为文件的三种方式
  4. mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询
  5. 干货 | 工行分布式数据库选型与大规模容器化实践
  6. jzoj4273-圣章-精灵使的魔法语【线段树】
  7. oracle扩容日志文件,调整Oracle Redo Logfile日志文件的大小
  8. Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法
  9. 浏览器窗口尺寸clientHeight / scrollHeight / offsetHeight / innerHeight
  10. C++ pair类模板
  11. eclipse 自定义文档注释的作者
  12. Java基础知识强化21:Java中length、length()、size()区别
  13. petshop架构分析
  14. html5 dom 结构,HTML5 DOM扩展
  15. 七款顶级HTML5编辑器带你飞
  16. 计算机网络英语的参考文献,计算机网络实践英文参考文献 计算机网络实践英语参考文献哪里找...
  17. Mysql数据库入门 (基础知识点 由来 各种指令 如何运用)
  18. 23种设计模式之代理模式(动态代理)
  19. 计算机毕业设计(63)php小程序毕设作品之校园新生报到小程序系统
  20. MySQL命令行登录不上但是sqlyog能成功连接

热门文章

  1. 量子计算机宋超,中国科学家取得量子计算重大突破:实现20个量子比特全局纠缠...
  2. 想要成为一名优秀的程序员,这十八招必看
  3. MDT2008-Part2
  4. 路由器NAT典型配置
  5. 前苹果设计总监创办,Humane想用AI+AR界面取代手机
  6. java 实例化bean_spring实例化bean
  7. 怀旧服一直显示正在登录服务器,怀旧服显示正在登录游戏服务器
  8. 海鲜商城小程序开发,解决海鲜市场供需难题
  9. Spring AOP知识总结
  10. 华为OceanStor S5600T服务器数据恢复方案(带过程图)