java前后分离使用fetch上传文件失败500
这次不是写什么技术要点,仅仅是记录一下 最近遇到的一个问题
背景
使用fetch向java后台上传文件时,前端调试报错500,后端的报错为multipart 无法解析,翻译过来大概是这个意思。
由于本人不会java所以这里只是记录一下前端的注意事项。
原因
问题的主要原因在于,我在上传时设置了contenttype,这里就不得不提一下,fetch中由于之前使用的时候如果我不设置contenttype那么我向后端传送json时就会报错。
因为contenttype本来就是用于设置http的格式的,所以我在上传之前手动的在配置里设置了contenttype 为 multipart/form-data。
没想到问题就出在这里,当我们手动设置后fetch将不再为form-data自动添加文件边界,所以造成后端无法解析。
其实这个问题在使用ajax时也是存在的,不知道大家记不记得在使用jq的ajax上传时要设置这样的两个属性:
contentType: false, // false即不设置contenttype
processData: false // 是否对参数进行序列化处理
contentType设为false即不设置本次http请求的contentType,而下面的processData则是不让jq处理我们在data中添加的数据,
否则ajax会在传输之前使用JSON.stringify()方法帮我们将数据转为json字符串
解决
最后的fetch上传成功的配置如下:
var options = {
"method": 'post',
"credentials": "include",
"headers": {
'Accept': 'application/json'
}
};
上传时千万不要自己设置contenttype,不要设置!不要设置!!
java前后分离使用fetch上传文件失败500的更多相关文章
- Java模拟表单POST上传文件
JAVA模拟表单POST上传文件 import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.io ...
- hadoop fs -put上传文件失败,WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: master:8020
hadoop fs -put上传文件失败 报错信息:(test文件夹是已经成功建好的) [root@master ~]# hadoop fs -put test1.txt /test // :: WA ...
- Nginx上传文件失败
公司用Nginx做反向代理,出现了上传文件失败的问题,通过查看错误日志,发现是上传文件太大的缘故. 通过查找资料,才知道nginx默认最大上传文件时1M.这就需要修改配置文件,将上传文件大小进行修改. ...
- 使用Xshell的rz命令上传文件失败的解决方法
使用Xshell的rz命令上传文件失败的解决方法 第一种:在home目录下rz上传文件失败,如下: 原因:当前用户不具备权限解决:用 sudo rz 上传即可成功 第二种:对于文件大的rz上传失败的话 ...
- JAVA模拟HTTP post请求上传文件
在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较 ...
- fetch上传文件报错的问题(multipart: NextPart: EOF)
技术栈 后台: gin(golang) 前端: react+antd+dva 问题 前端这边使用fetch发送http请求的时候,后端解析formData报错: multipart: NextPart ...
- Java模拟客户端向服务器上传文件
先来了解一下客户端与服务器Tcp通信的基本步骤: 服务器端先启动,然后启动客户端向服务器端发送数据. 服务器端收到客户端发送的数据,服务器端会响应应客户端,向客户端发送响应结果. 客户端读取服务器发送 ...
- SecureCRT rz 上传文件失败问题
在把Windows上的文件传至Linux端时用到SecureCRT,一般小文件都没有问题,文件太大时则出现了上传后的文件只有几K大小,当然大于2个G的是不可能传的上去的了.对于几百M到1G多的大文件要 ...
- IIS8中 出现ashx 401:未授权,uploadify上传文件失败
环境:阿里云服务器 windows2012 + IIS8 +asp.net 访问IIS 出现能正常访问aspx页面,但是通过ajax访问ashx上传文件的时候就出现ashx Status Code ...
随机推荐
- curl 查看一个web站点的响应时间
1. curl 查看web站点 curl -o /dev/null -s -w "time_namelookup:%{time_namelookup}s\ntime_connect:%{ti ...
- Redis实战 - 5事务:multi、exec和watch
介绍 redis的目标的是: 简洁,高效,由于事务本身就是一个很复杂的东西,所有我们不能把事务做的太复杂. DISCARD 取消事务,放弃执行事务块内的所有命令. EXEC 执行所有事务块内的命令. ...
- 【JAVA】高并发优化细节点
高并发优化细节点: 微服务化 如何发现系统瓶颈? 如何高效利用有限内存: 使用基本类型 使用数组,不用集合 自定义map与数据结构 Integer—>int, Set<Intege ...
- Nginx+DNS负载均衡实现
负载均衡有多种实现方法,nginx.apache.LVS.F5硬件.DNS等. DNS的负载均衡就是一个域名指向多个ip地址,客户访问的时候进行轮询解析 操作方法,在域名服务商解析的DNS也可以是第三 ...
- Continuity of arithmetic operations
Arithmetic operations taught in elementary schools are continuous in the high level topological poin ...
- docker 安装mysql
1.安装docker 参见这个文章第一步:https://www.cnblogs.com/yanglei-xyz/p/10600707.html 2.安装mysql 查找Docker Hub上的mys ...
- The requested URL / was not found on this server
The requested URL / was not found on this server.原因:未打开Apache的重写功能#LoadModule rewrite_module modules ...
- Linux环境下vi/vim编辑器常用命令
使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...
- 绕最新版安全狗-附上sqlmap的tamper
在t00ls 里面我发的,放博客分享 记录一下 小菜写文章,太菜 希望大佬放过我! 主要分享一下,绕狗的思路环境:windows7 + phpstudy + safedog v4.0 + Mysq ...
- DCDC设计指南二
DCDC电源设计指导:二 这一讲以一款SOP-8封装的Synchronous Step-Down Converter(同步降压转换器)电源IC为例,讲下电源的PCB设计. 如第一讲中所说,开始设计时就 ...