开发公司前端上传文件 设置请求头multipart/form-data 上传失败

上传文件

开发公司总体来说前端上传文件开发公司一共有两种方式;
1、使用base64;开发公司正常加参数上传给后台、开发公司这种方式在手机端会很慢、开发公司因为在手机在转化文件为base64时很慢;
2、使用FormData 上传 设置请求头multipart/form-data

content-type 作用是告诉服务器,浏览器发来了什么数据;

在做项目时,一般会和后台协商、使用
1、application/传输
2、application/json 传输
但在上传文件时需要修改content-type为multipart/form-data;

最近在做的一个项目、因为公共的请求头设置为application/x-www-form-urlencoded;
导致在上传文件时需要单独对接口Content-Type做设置、
发现上传文件报错、但使用postman或者使用ant组件库中的上传组件也是没有问题;
那问题肯定出在前端;

于是我们看了浏览器中上传成功的network请求、发现content-type是这样的

而失败的,因为自己指定content-type所以没有后面的boundary

而umi-request 一旦在封装的统一的request中默认为application/json、项目又需要给其他接口设定application/x-www-form-urlencoded;

所以类似umi-request请求库 有以下3种解决方式

1、每个接口自定义请求头 上传文件的请求头不设置content-type;
2、在request拦截器中判断只在requestType不为form(即不是上传文件的接口)的设置公共的请求头;
3、重新在封装一个不指定请求头的request文件、上传文件的使用这个请求文件!

如果使用的请求为jquery的ajax 、只需要在对应的上传接口设置content-type为false即可、然后浏览器会自动设置content-type并设置boundary

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发