el upload ajax,Upload 上传 el-upload 上传配置请求头为Content-Type: multipart/form-data
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相关推荐
- 上传文件.HttpMediaTypeNotSupportedException:Content type ‘multipart/form-data;
org.springframework.web.HttpMediaTypeNotSupportedException:Content type 'multipart/form-data;boundar ...
- 上传文件报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundarypJygPIIxqzTHmtkQ;charset=...
@ReponseBody不支持form-data,所以要接收带有文件的form-data有3种方式. 方式一: @PostMapping("upload") public Stri ...
- php fastdfs上传文件,fastDFS中使用php上傳文件 -- http上傳與下載圖片
CleverCode研究完fastDFS后,嘗試着使用php上傳文件到fastdfs. 1 fastDFS安裝 fastdfs分布式架構配置參考:http://blog.csdn.net/clever ...
- 00截断上传绕过_上传绕过总结
欢迎各位关注我的专栏,在以后的时间里,我将分享更多技术,在这里你能学到很多知识和姿势.自我介绍:高级安全研究员|擅长Python\PHP\JAVA审计;SONRT规则;etc.|陈小兵著<SQL ...
- uniapp-上传图片、上传视频
基于 uniapp 的应用上传图片/视频 资源的实现: 功能涉及的主要 uniapp API 如下: 1.选择图片:uni.chooseImage(OBJECT) | uni-app官网 2.选择视频 ...
- antd upload手动上传_SpringBoot 如何上传大文件?
最近遇见一个需要上传超大大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- 基于layui.upload.js 拖拽文件/文件夹上传下载
layui.upload.js 拖拽文件/文件夹上传下载 前言 js代码 页面使用(我这里用的是uploader.jsp) CSS文件 上传效果 总结 前言 项目需求完成文件上传,可以拖拽上传文件/文 ...
- antd 上传进度_antd vue upload组件使用customRequest上传文件显示文件上传进度
antd-vue上传文件upload组件使用自定义上传方法customRequest无法显示文件上传进度条,如下图红框内的进度条无法显示当前文件上传进度 于是,在网上搜索解决方案: 第一种解决方案是自 ...
- ant react 上传_React实战之Ant Design—Upload上传_附件上传
React实战之Ant Design-Upload上传_附件上传 Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看 ...
最新文章
- 技术不是大数据第一生产力,数据交易才能带来应用爆发
- 11.系统安全分析与设计
- 【编程帮助】python中字符串前的 r、b、u、f 的含义及用法
- timequest静态时序分析学习笔记之命令约束
- linux 程序 减肥,程序减肥三步走
- 一个简单的MDX案例及说明 (转载)
- Python中文手册——开胃菜
- HP LaserJet P1108驱动安装
- Odoo12功能模块文档整理
- asp.net旅游网站系统VS开发sqlserver数据库web结构c#编程计算机网页项目
- 3dmax动画模型导入unity 帧率问题
- 送你一个励志故事(转载)
- Coding 配置SSH凭据
- Source Insight 4.0 序列号 license文件
- Unity2020Video player发布后无法播放视频问题
- 服务器uefi装系统教程,uefi模式怎么重装系统_win10uefi装系统步骤教程
- java开发最新获取抖音无水印视频和背景音乐
- 【Mac使用技巧】Mac中文输入法打不出来句号
- JZOJ5953. 【NOIP2018模拟11.5A组】生死之境
- Java素数求和(1~100)
热门文章
- 推荐系统中的EE问题——Bandit算法
- 计算机音乐制作专业美国研究生,美国音乐制作专业研究生六大首选音乐学院
- 大赢家软件测试工资,C++实验:某学校对教师每月工资的计算规定如下:固定工资+课时补贴。...
- 情报运营 | VirusTotal Hunting 笔记 - 自动生成YARA规则、通过YARA规则实时打捞VT样本
- ubuntu赋予当前用户root权限
- 经典VU仪表的混音效果工具
- 分式化简结果要求_分式约分的结果是()
- 抓取国家统计局2018年的省市区街道数据
- 零基础零代码实现可视化报表
- Kubernetes控制平面组件:Controller-Manager控制器管理