api接口处添加属性 (标红处)

// 校验台账

export const checkEquiment = (data) => {

return axios({

url: '/job/equipmentInfo/checkEquipment',

method: 'post',

data,

ContentType:'multipart/form-data'

})

}

封装axios中调用接口中配置的属性

// 二次封装axios模块,包含拦截器等信息

import Axios from 'axios'

import config from './config'

import router from '@/router'

import { MessageBox, Message, Loading } from 'element-ui'

import qs from 'qs'

export default function $axios(options) {

return new Promise((resolve, reject) => {

// 创建一个axios实例

// let responseType = 'json'

if (options.responseType) {

config.responseType = options.responseType

}

//请求头Axios.create创建之前做判断,拿到接口中配置的属性,设置请求头为config.headers={'Content-Type': options.ContentType}

console.log(options.ContentType)

if(options.ContentType){

config.headers = {

'Content-Type': options.ContentType

}

}

const axios = Axios.create({

baseURL: config.baseUrl,

headers: config.headers,

timeout: config.timeout,

withCredentials: config.withCredentials

})

// 定义请求次数(用于判断请求是否已经全部响应)

let requestCount = 0

let loading

// (客户端请求前)显示loading

function showLoading() {

if (requestCount === 0) {

loading = Loading.service({

lock: true,

text: '拼命加载中...'

// spinner: 'el-icon-loading', // loading样式类名

// background: 'rgba(0,0,0,0.5)',

// customClass: 'create-isLoading'

})

}

requestCount++

}

let timer

// (服务器响应后)尝试隐藏loading

function tryHideLoading() {

requestCount--

// 采用setTimeout是为了解决一个请求结束后紧接着有另一请求发起导致loading闪烁的问题

timer = setTimeout(() => {

if (requestCount === 0) {

loading.close()

clearTimeout(timer)

}

})

}

// 请求拦截器

axios.interceptors.request.use(

config => {

// 在请求头里添加系统编码

config.headers.systemCode = '01'

// 解决get请求传递数组参数的问题

if (config.method === 'get') {

config.paramsSerializer = function(params) {

return qs.stringify(params, {

arrayFormat: 'repeat'

})

}

}

// console.log(options.loading)

if (options.loading != false) {

showLoading()

}

//

return config

},

error => {

loading.close()

// 请求发生错误时

console.log('request:', error)

// 判断请求超时

if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {

console.log('timeout请求超时')

}

// 需要重定向到错误页面

const errorInfo = error.response

if (errorInfo) {

error = errorInfo.data // 页面那边catch的时候就能拿到详细的错误信息,看最下边的Promise.reject

const errorStatus = errorInfo.status // 404 403 500 ...

router.push({

path: `/error/${errorStatus}`

})

}

return reject(error) // 在调用的那边可以拿到(catch)你想返回的错误信息

}

)

// response 响应拦截器

axios.interceptors.response.use(res => {

tryHideLoading()

if (res.data.code === 10002) {

MessageBox.alert('登陆信息超时,请重新登陆!', '登陆超时', {

confirmButtonText: '跳转到登陆页面',

callback: () => {

// 确定跳转到登陆页面后,清除用户的登陆信息

sessionStorage.removeItem('userInfo')

window.location.href = '/'

}

})

} else {

return res.data

}

},

err => {

loading.close()

if (err && err.response) {

switch (err.response.status) {

case 400:

err.message = '请求错误'

break

case 401:

err.message = '未授权,请登录'

break

case 403:

err.message = '拒绝访问'

break

case 404:

err.message = `请求地址出错: ${err.response.config.url}`

break

case 408:

err.message = '请求超时'

break

case 500:

err.message = '服务器内部错误'

break

case 501:

err.message = '服务未实现'

break

case 502:

err.message = '网关错误'

break

case 503:

err.message = '服务不可用'

break

case 504:

err.message = '网关超时'

break

case 505:

err.message = 'HTTP版本不受支持'

break

default:

}

}

console.error(err)

return reject(err) // 返回接口返回的错误信息

}

)

// 请求处理

axios(options).then(res => {

resolve(res)

return false

}).catch(error => {

reject(error)

})

})

}

此时再调此接口时

谈谈axios配置请求头content-type

现在前端开发中需要通过Ajax发送请求获取后端数据是很普遍的一件事情了,鉴于我平时在撸码中用的是vue技术栈,今天这里来谈谈我们常用的发Ajax请求的一个插件-axios. > 现在网上可能发送 ...

axios配置请求头content-type

现在前端开发中需要通过Ajax发送请求获取后端数据是很普遍的一件事情了,鉴于我平时在撸码中用的是vue技术栈,今天这里来谈谈我们常用的发Ajax请求的一个插件—axios.> 现在网上可能发送A ...

Nginx配置请求头

最近发现一个问题: IOS访问后台接口是,总是application/json;charset=utf-8 但是后台接口只支持大写的UTF-8,修改了Nginx的请求头之后正常. proxy_set_ ...

html5 file upload and form data by ajax

html5 file upload and form data by ajax 最近接了一个小活,在短时间内实现一个活动报名页面,其中遇到了文件上传. 我预期的效果是一次ajax post请求,然后在 ...

upload三种上传方式(上)---Servlet---post---commons-fileupload.1.2.1.jar方式请求上传文件

上传前进行的配置选项: 1.在下方的Servers中,右键你的tomcat--open,选中下面两个配置. 第一个:Serve modules without publishing 作用:tomcat ...

《Play for Java》学习笔记(六)文件上传file upload

一. Play中标准方法 使用表单form和multipart/form-data的content-type类型. 1.Form @form(action = routes.Application.u ...

React实战之Ant Design—Upload上传_附件上传

React实战之Ant Design—Upload上传_附件上传 Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看 ...

iview Upload组件多个文件上传

使用  iview Upload 上传组件 手动上传 包括单个文件和多个文件 思路:创建一个数组 把需要上传的文件 push到这个数组里面 1.引用组件 2.手动上传,根据官方文档 设置:before ...

SpringMVC 实现文件上传与下载,并配置异常页面

目录 上传文件的表单要求 Spring MVC实现上传文件 需要导入的jar包 配置MultipartResolver解析器 编写接收上传文件的控制器 Spring MVC实现文件下载 下载文件时的h ...

随机推荐

Java开发中经典的小实例-(swich(){case:参数break;default: break;})

import java.util.Scanner;public class Test6 {    public static void main(String[] args) {        // ...

Rnadom Teams

Rnadom  Teams 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.actioncid=88890#problem/B 题目: Descript ...

(转)Linq学习笔记

el upload ajax,Upload 上传 el-upload 上传配置请求头为Content-Type: multipart/form-data相关推荐

  1. 上传文件.HttpMediaTypeNotSupportedException:Content type ‘multipart/form-data;

    org.springframework.web.HttpMediaTypeNotSupportedException:Content type 'multipart/form-data;boundar ...

  2. 上传文件报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundarypJygPIIxqzTHmtkQ;charset=...

    @ReponseBody不支持form-data,所以要接收带有文件的form-data有3种方式. 方式一: @PostMapping("upload") public Stri ...

  3. php fastdfs上传文件,fastDFS中使用php上傳文件 -- http上傳與下載圖片

    CleverCode研究完fastDFS后,嘗試着使用php上傳文件到fastdfs. 1 fastDFS安裝 fastdfs分布式架構配置參考:http://blog.csdn.net/clever ...

  4. 00截断上传绕过_上传绕过总结

    欢迎各位关注我的专栏,在以后的时间里,我将分享更多技术,在这里你能学到很多知识和姿势.自我介绍:高级安全研究员|擅长Python\PHP\JAVA审计;SONRT规则;etc.|陈小兵著<SQL ...

  5. uniapp-上传图片、上传视频

    基于 uniapp 的应用上传图片/视频 资源的实现: 功能涉及的主要 uniapp API 如下: 1.选择图片:uni.chooseImage(OBJECT) | uni-app官网 2.选择视频 ...

  6. antd upload手动上传_SpringBoot 如何上传大文件?

    最近遇见一个需要上传超大大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  7. 基于layui.upload.js 拖拽文件/文件夹上传下载

    layui.upload.js 拖拽文件/文件夹上传下载 前言 js代码 页面使用(我这里用的是uploader.jsp) CSS文件 上传效果 总结 前言 项目需求完成文件上传,可以拖拽上传文件/文 ...

  8. antd 上传进度_antd vue upload组件使用customRequest上传文件显示文件上传进度

    antd-vue上传文件upload组件使用自定义上传方法customRequest无法显示文件上传进度条,如下图红框内的进度条无法显示当前文件上传进度 于是,在网上搜索解决方案: 第一种解决方案是自 ...

  9. ant react 上传_React实战之Ant Design—Upload上传_附件上传

    React实战之Ant Design-Upload上传_附件上传 Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看 ...

最新文章

  1. 技术不是大数据第一生产力,数据交易才能带来应用爆发
  2. 11.系统安全分析与设计
  3. 【编程帮助】python中字符串前的 r、b、u、f 的含义及用法
  4. timequest静态时序分析学习笔记之命令约束
  5. linux 程序 减肥,程序减肥三步走
  6. 一个简单的MDX案例及说明 (转载)
  7. Python中文手册——开胃菜
  8. HP LaserJet P1108驱动安装
  9. Odoo12功能模块文档整理
  10. asp.net旅游网站系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  11. 3dmax动画模型导入unity 帧率问题
  12. 送你一个励志故事(转载)
  13. Coding 配置SSH凭据
  14. Source Insight 4.0 序列号 license文件
  15. Unity2020Video player发布后无法播放视频问题
  16. 服务器uefi装系统教程,uefi模式怎么重装系统_win10uefi装系统步骤教程
  17. java开发最新获取抖音无水印视频和背景音乐
  18. 【Mac使用技巧】Mac中文输入法打不出来句号
  19. JZOJ5953. 【NOIP2018模拟11.5A组】生死之境
  20. Java素数求和(1~100)

热门文章

  1. 推荐系统中的EE问题——Bandit算法
  2. 计算机音乐制作专业美国研究生,美国音乐制作专业研究生六大首选音乐学院
  3. 大赢家软件测试工资,C++实验:某学校对教师每月工资的计算规定如下:固定工资+课时补贴。...
  4. 情报运营 | VirusTotal Hunting 笔记 - 自动生成YARA规则、通过YARA规则实时打捞VT样本
  5. ubuntu赋予当前用户root权限
  6. 经典VU仪表的混音效果工具
  7. 分式化简结果要求_分式约分的结果是()
  8. 抓取国家统计局2018年的省市区街道数据
  9. 零基础零代码实现可视化报表
  10. Kubernetes控制平面组件:Controller-Manager控制器管理