使用vue插件axios传数据的Content-Type及格式问题详解

目录
  • 1.一般来说,前后台对接,常用的Content-Type有:
  • 2.get请求
  • 3.post请求

1.一般来说,前后台对接,常用的Content-Type有:

application/json,application/x-www-form-urlencoded 以及 multipart/form-data,当我们使用axios时,一般不需要我们主动去设置Content-Type,而是跟着我们传的数据格式自动适应。

2.get请求

get请求时传递的参数是会出现在url里面的,我们使用aixos传递get请求时可用格式如下
(1)将参数拼接在url里

this.$axios({
	method: 'get',
	url: this.$store.state.api1
		+ '&username=' + 'xxx'
		+ '&password=' + 'xxx'
})

(2)将参数放入params对象里

this.$axios({
	method: 'get',
	url: this.$store.state.api1,
	params: {
		username: 'xxx',
	  	password: 'xxx'
	}
})

3.post请求

(1)当我们要传对象时,此时的 Content-Type 为 application/json 类型,传递的格式如下,将传递的参数放入对象中:

this.$axios({
	url: this.$store.state.api1,
	method: 'post',
	data: {
		username: 'xxx',
	  	password: 'xxx'
	}
})

(2)当我们要传字符串时,Content-Type 为 application/x-www-form-urlencoded 类型,传递的格式有如下:

this.$axios({
	method: 'post',
	url: this.$store.state.api1,
	data: 'username=' + 'xxx'
		+ '&password=' + 'xxx'
	})
this.$axios({
method: 'post',
url: this.$store.state.api1,
data: qs.stringify({
	username: 'xxx',
	password: 'xxx'
})

(3)当我们要传文件时,Content-Type 需要使用 multipart/form-data,格式如下:

// 获取文件
let input = document.querySelector('.input_file')
let curFiles = input.files

// 将文件放入formData中
let formData = new FormData()
for(let file of curFiles){
	formData.append('files', file)
}

// 将需要传递的参数放入formData中
formData.append('username', 'xxx')
formData.append('password', 'xxx')

// 调接口
this.$axios({
	url: this.$store.state.api1,
	method: 'post',
	data: formData
})

到此这篇关于使用vue插件axios传数据的Content-Type以及格式问题的文章就介绍到这了,更多相关vue Content-Type内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue的axios请求改变content-type为form-data问题

    目录 axios请求改变content-type为form-data axios无法发送‘Content-Type‘: ‘multipart/form-data‘请求 按照一般的写法 axios请求改变content-type为form-data 代码如下: 正常效果 axios无法发送‘Content-Type‘: ‘multipart/form-data‘请求 我这里写的是纯粹的前端解决方案 按照一般的写法 const req = (method, url, params) => {    

  • Vue.js使用axios动态获取response里的data数据操作

    今天开发时,使用axios返回的response中data有多个数据: 如果是获取cn里的数据的,可以用: response.data.cn 但是需求是根据选择来获取数据的,会发生变化,最开始的想法是,用一个变量来记录需要获取的key: 假设need是需要获取的某个key const dkey = this.need; response.data.dkey 这样发现获取不到数据,这是因为vue.js把dkey当成data里的某一个key了,类似于上面的"cn". 折腾了很久才突然想起,

  • VUE项目axios请求头更改Content-Type操作

    我就废话不多说了,大家还是直接看代码吧~ const httpServer = (opts, data) => { const token = localStorage.getItem('token') const PUBLIC = `?token=${token}` let httpDefaultOpts = '' var host = `${process.env.HOST}` var prot = `${process.env.PORT}` var base = host +(prot?&qu

  • Vue-axios-post数据后端接不到问题解决

    1 前言 最近在前后端联调的时候发现了一个问题,可能自己平时不注意发送的内容格式,导致解决问题的路上,走了很多弯路,尤其是在刚刚懂了一点Vue知识之后,发送请求的各种花式写法也是让人头大,我在这把我踩到的坑给大家介绍一下吧. 2 问题 这个问题是我前端登录的时候向后端发生post请求.在使用这个接口前,我使用 postman 确认过了几次,接口传参是没有问题的,而且使用params或者body传参都是能接收到的.然而还是报错了--我们先来看看一个截图吧. 我向后端发参数的时候无论如何我都接不到数

  • Vue axios 将传递的json数据转为form data的例子

    修改main.js文件中axios的配置: 在发送请求前将数据用qs模块转化 修改请求头的Content-Type='application/x-www-form-urlencoded' 具体配置如下: import axios from 'axios' import qs from 'qs' // 添加请求拦截器 axios.interceptors.request.use(function (config) { if(config.method!='get'){ config.data=qs

  • 详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题

    业务上出现一个问题:如果连续对同一个接口发出请求,参数不同,有时候先请求的比后请求的返回数据慢,导致数据顺序混乱,或者数据被覆盖的问题,所以需要控制请求的顺序. 解决方法: 1.直接跟后台沟通,将所有参数放到数组里后台统一接收并返回所有数据再由前端进行数据的拆分使用. 2.对于出现返回的数据混乱问题. 假设场景: 页面中需要对三个部门请求对应的部门人员,三个部门人员的数据为一个二维数组,连续发送请求,但由于返回数据的顺序不定,导致数组中的数据顺序不是按照部门的顺序. 解决方法:使用promise

  • vue中axios实现数据交互与跨域问题

    1. 通过axios实现数据请求 vue.js默认没有提供ajax功能的. 所以使用vue的时候,一般都会使用axios的插件来实现ajax与后端服务器的数据交互. 注意,axios本质上就是javascript的ajax封装,所以会被同源策略限制. 下载地址: https://unpkg.com/axios@0.18.0/dist/axios.js https://unpkg.com/axios@0.18.0/dist/axios.min.js axios提供发送请求的常用方法有两个:axio

  • 使用vue插件axios传数据的Content-Type及格式问题详解

    目录 1.一般来说,前后台对接,常用的Content-Type有: 2.get请求 3.post请求 1.一般来说,前后台对接,常用的Content-Type有: application/json,application/x-www-form-urlencoded 以及 multipart/form-data,当我们使用axios时,一般不需要我们主动去设置Content-Type,而是跟着我们传的数据格式自动适应. 2.get请求 get请求时传递的参数是会出现在url里面的,我们使用aixo

  • vue中Axios的封装和API接口的管理示例详解

    目录 一.axios的封装 安装 引入 环境的切换 设置请求超时 post请求头的设置 请求拦截 响应的拦截 封装get方法和post方法 axios的封装基本就完成了,下面再简单说下api的统一管理. 2018.8.14更新 我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护. 一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js

  • Vue使用axios发送请求并实现简单封装的示例详解

    目录 一.安装axios 二.简单使用 1.配置 2.发送请求 三.封装使用 1.创建js封装类 2.配置 3.发送请求 一.安装axios npm install axios --save 二.简单使用 1.配置 main.js中加入如下内容 // 引入axios --------------------------------------------------- import axios from 'axios' Vue.prototype.$axios = axios Vue.proto

  • Vue向后端传数据后端接收为null问题及解决

    目录 Vue向后端传数据后端接收为null 他们的格式 安装qs mian.js中添加 vue请求 Vue捕获后端抛出异常 设置前 设置后 Vue向后端传数据后端接收为null 由于axios默认发送数据时,数据格式是Request Payload,而并非我们常用的Form Data格式,后端数据就为null,所以在发送之前,需要使用qs模块对其进行处理. 他们的格式 Request Payload:http://localhost:8080/login?zh=123,pw=123 Form D

  • 关于net 6+vue 插件axios 后端接收参数问题

    React 教程 React 是一个用于构建用户界面的 JAVASCRIPT 库. React 主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图). React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源. React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它. React 特点 1.声明式设计 −React采用声明范式,可以轻松描述应用. 2.高效 −React通过对DOM的模拟,最大

  • vue element实现将表格单行数据导出为excel格式流程详解

    由于业务内容的需要,我们有时候需要将表格中的单行数据做导出,生成一个excel表格,以下操作主要实现将element中的table数据生成一个excel表格并做下载操作. 效果图如下: 点击单行导出按钮,导出数据为excel表格 如下图: 具体操作步骤如下: 1.下载按照依赖 npm install -D script-loader 2.在src文件夹的目录下方创建两个js文件 (1):Blob.js (2):Export2Excel.js 如下图: (Blob.js) (function (v

  • 基于vue中css预加载使用sass的配置方式详解

    1.安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-dev node-sass 2.在build文件夹下的webpack.base.conf.js的rules里面添加配置,如下红色部分 { test: /\.sass$/, loaders: ['style', 'css', 'sass'] } <span style="color:#454545;"

  • Vue.js 2.x之组件的定义和注册图文详解

    前言 什么是组件 组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可. 模块化和组件化的区别 模块化:是从代码逻辑的角度进行划分的:方便代码分层开发,保证每个功能模块的职能单一 组件化:是从UI界面的角度进行划分的:前端的组件化,方便UI组件的重用 全局组件的定义和注册 组件Component是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码. 全局组件的定义和注

  • vue实现的多页面项目如何优化打包的步骤详解

    遇到的问题 在多页面框架打包的过程中会,随着业务的增加页面越来越多,使用的三方包也会越来越多,但并不是所有页面都会使用到三方插件,使用webpack打包会让所有的三方包打包到一起,会导致vendor.js(三方包打包后的文件)越来越大,即使没使用过三方插件的页面也会引入,页面加载会越来越慢. 如何优化 使用cdn引入,这种就每次新建一个页面的时候手动通过cdn的方式引入,但是并不是特别好的方式,还需要手动加入. 就是使用splitChunks分割三方包,将三方包单独打包出来,根据页面的依赖情况自

随机推荐