vue axios form-data格式 传输数据和文件

news/2024/7/10 3:20:07 标签: axios, form-data, vue

axios 默认是 Payload 格式数据请求,但有时候后端接收参数要求必须是 Form Data 格式的,所以我们就得进行转换。Payload 和 Form Data 的主要设置是根据请求头的 Content-Type 的值来的。

Payload    Content-Type: ‘application/json; charset=utf-8’
Form Data   Content-Type: ‘application/x-www-form-urlencoded’

axios_5">封装axios

//示例
api 目录下有两个文件  index.js  与 config.js



//调用
import api from 'xxx/api'
api.getName({}).then((res)=>{
	console.log(res,'返回值')
})

index.js

import {fetch} from './config.js';

export default {
  getName(params){return fetch('coupon','getName',params,'post')},
}

config.js

import axios from 'axios'
import qs from 'qs'

axios.defaults.timeout = 60000;                        //响应时间
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';  //配置请求头
//配置接口地址
axios.defaults.baseURL = 'https://jdbb.shuimuglobal.com/';

//请求拦截
axios.interceptors.request.use((config)=>{
  console.log(config,'config')
  return config
});

//请求后
axios.interceptors.response.use((res) => {
 
  return res
});

//请求前
export function fetch(_gp, _mt, params,type) {

  return new Promise((resolve, reject) => {
    if(type=='post'){
      axios.post('/jfmall/m.api',qs.stringify({...params,_gp, _mt} ))
      .then(response => {
        resolve(response.data);
      }, err => {
        reject(err);
      })
      .catch((error) => {
        reject(error)
      })
    } else {
      // resolve(url)
      resolve(axios.defaults.baseURL + url);
    }  
  })
}


在封装 axios 的时候,设置请求头 Content-Type 为 application/x-www-form-urlencoded。 然后在请求拦截器中,通过 qs.stringify() 进行数据格式转换,这样每次发送的POST请求都是 Form Data 格式的数据了。 其中 qs 模块是安装 axios 模块的时候就有的,不用另行安装,通过 import 引入即可使用。


http://www.niftyadmin.cn/n/1558146.html

相关文章

30.从 Azure 备份服务器恢复数据

如果您喜欢我的文章,请在右上角处点击《关注》支持一下,谢谢!使用 Azure 备份服务器恢复已备份到恢复保管库的数据。 用于执行此操作的过程已集成到 Azure 备份服务器管理控制台中恢复之前请确认您的Azure备份服务器是安装的最新 Azure 备份代…

Debian资源库已加入Spectre、Meltdown漏洞检查器

影响几乎所有现代处理器的“幽灵”(Spectre)和“熔毁”(Meltdown)安全漏洞的余波尚未散尽,软硬件厂商仍在携手努力给平台打补丁。如果你正在运行 Debian GNU/Linux 环境,并且希望检查系统是否存在严重的安全…

uniapp 打包h5,自定义环境变量

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。 uniapp借助HBuil…

eruda.js 移动端调试神器使用教程(eruda)

在日常的移动端开发时,一般都是试用chrome浏览器的移动端模式进行开发和调试,只有在chrome调试完成,没有问题了才会上到真机测试,移动端开发的一大问题就在于此, 各种品牌各种型号手机,手机中各种类型的浏…

死亡名单上的共享单车公司那么多,滴滴怎么就挑中了小蓝单车?

好口碑?急着找接盘侠?……小蓝单车的哪方面吸引了滴滴的眼光? 日前,有消息人士称,滴滴已经于近期完成了对小蓝单车的收购,且在内部也孵化了一个名为“海棠”的单车项目,而滴滴还没有任何回应。…

快速理解分布式id生成算法SnowFlake(雪花算法)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/79563624

VUE3 项目自定义修改网页标题和图标

以百度为例 打开网页,tab页都会有图标和标题,那么如何自定义呢? vue.config.js module.exports { ... //设置图标pwa: {iconPaths: {favicon32: avatar.png,favicon16: avatar.png,appleTouchIcon: avatar.png,maskIcon: avatar.png,msTil…

uniapp 使用uView UI教程

从创建uniapp项目到将uView配置全部过程,你了解了吗? 让我们一起复习一下!!1、新建项目a、首先下载HBuilderXb、使用HBuilderX 创建uniapp 项目2、设置项目名称、目录3、下载uView UI已下载安装为例4、安装scss5、配置步骤a、 引入…