ajax 上传文件报错,Ajax使用formdata异步上传文件,报错the request was rejected because no multipart boundary was found...

基于jQuery的Ajaxs使用FormData上传文件要注意两个参数的设定

processData设为false

把processData设为false,让jquery不要对formData做处理,如果processData不设置为false,jquery会把formData转换为字符串。

contentType设为false

http发送multipart/form-data请求报文示例

POST /api/feed/ HTTP/1.1

Accept-Encoding: gzip

Content-Length: 225873

Content-Type: multipart/form-data; boundary=OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp

Host: www.myhost.com

Connection: Keep-Alive

--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp

Content-Disposition: form-data; name="lng"

Content-Type: text/plain; charset=UTF-8

Content-Transfer-Encoding: 8bit

116.361545

--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp

Content-Disposition: form-data; name="lat"

Content-Type: text/plain; charset=UTF-8

Content-Transfer-Encoding: 8bit

39.979006

--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp

Content-Disposition: form-data; name="images"; filename="/storage/wbavrx.jpg"

Content-Type: application/octet-stream

Content-Transfer-Encoding: binary

这里是图片的二进制数据

--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp--

注意Content-Type: multipart/form-data; boundary=OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp ,参数boundary为请求参数之间的界限标识。

如果jquery请求设置了contentType,那么就会覆盖了formData的content-type,导致服务器在分隔参数和文件内容时是找不到boundary,报no multipart boundary was found错误

默认情况下jquery会把contentType设置为application/x-www-form-urlencoded。要jquery不设置contentType,则需要把contentType设置为false。

var formData = new FormData($("#uploadform")[0]);

$.ajax({

url: actionUrl,

type: 'POST',

data: formData,

async: false,

cache: false,

contentType: false,

processData: false,

...

});

生产环境nginx上传文件报错413 Request Entity Too Large

修改nginx配置文件/etc/nginx/nginx.conf 在http{}中添加 client_max_body_size 100m; 意思是设置上传文件大小

Linux - xshell上传文件报错乱码

xshell上传文件报错乱码,解决方法 rz -be 回车 下载sz  filename

Azkban上传文件报错installation Failed.Error chunking

azkaban 上传文件报错Caused by: java.sql.SQLException: The size of BLOB/TEXT data inserted in one transacti ...

Tomcat上传文件报错:returned a response status of 403 Forbidden

出现这样的错误是没有权限对服务器进行写操作.需要在这个项目所在的tomcat中配置可写操作即可: 在tomcat的web.xml添加下面代码:

HTML5 jQuery+FormData 异步上传文件,带进度条

html>

通过jQuery Ajax使用FormData对象上传文件 (转载)

XMLHttpRequest Level 2 添加了一个新的接口——FormData.与普通的 Ajax 相比,使用 FormData 的最大优点就是我们可以异步上传二进制文件.jQuery 2.0+ ...

通过jQuery Ajax使用FormData对象上传文件

FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". 在 Mozilla Developer 网站 使用For ...

[转] 通过jQuery Ajax使用FormData对象上传文件

FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". 在 Mozilla Developer 网站 使用For ...

SecureCRT sftp上传文件报错:put: failed to upload xxx 拒绝访问

1.问题 使用sftp上传文件时报错:put: failed to upload xxx 拒绝访问.类似下图所示: 2.原因 造成这个问题的原因可能有两个,一是要上到的那个目录剩余磁盘空间不足,二是打 ...

随机推荐

android button minheight问题

Android的button控件默认在内部text周围是有padding的,而且不受控制,这样子看似button控件在高度/宽度上像是被拉伸了,如何解决这个问题? 只要在xml中设置MinHeight ...

C语言浮点数除法可以精确到多少位小数

double型的两个数相除,得到的浮点数能精确到多少位呢..用我家电脑做了个实验,编译器是Code::Blocks 13.12. 然后用电脑自带的计算器算的结果和C语言算的结果比较如图. 第一例里a= ...

[Everyday Mathematics]20150111

设 $n$ 阶方阵 $A=(\al_1,\cdots,\al_n)$ 非奇异, $B=(0,\al_2,\cdots,\al_n)$. 试证: $BA^{-1}$, $A^{-1}B$ 的秩均为 $n ...

在内核外编写的linux驱动程序MAKEFILE

一般都是这么写: ifneq ($(KERNELRELEASE),) obj-m :=  else KERNELDIR ?= /lib/modules/$(shell uname -r)/build ...

hdoj 2040

#includeint i,j,s1,s2;int cha(int a,int b){ s1=0; s2=0;   for(i=1;i

Objective-C运行时态消息传递--拼接方法名

做IOS开发的人都知道,Objective-C语言中方法的调用是运行时采取绑定的,在编译过程中只声明该方法的存在. 那么我们来简单说下在运行时,类的消息传递. 在运行时,每个方法如[self meth ...

故障排查实战案例——某电器ERP系统日志暴增

前言 本篇文章写在新春佳节前夕,也是给IT运维朋友一个警醒,在春节长假前请妥善体检自己的系统安心过个年. 千里之堤毁于蚁穴,一条看似简单的语句就能拖垮整个系统,您的SQL Server很久没体检了吧? ...

1.0 添加WEB API项目并按注释生成文档(多项目结构)

1.新建ASP.NET 项目,模板选择如图 2.选择Web API,并选择不进行身份验证方式 成功后我们看到这个结果. 至于其它三种身份验证方式,不太适合我的使用.而且这种方式也可以在代码里去实现身份 ...

python学习笔记(1)python中的注释和安装python

注释 目标 注释的作用 单行注释 多行注释 01注释的作用 在程序中对代码的标注说明,增强代码的可读性 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用 为 ...

Django积木块九——富文本编辑器

富文本编辑器 前端和后端都可以用富文本编辑器 # pip install django-tinymce # setting 'tinymce' TINYMCE_DEFAULT_CONFIG = { ' ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值