使用 jQuery.ajax 上传带文件的表单遇到的问题


Posted in Javascript onOctober 31, 2016

今天帮人看代码的时候,遇到一点小问题。使用 jQuery 上传带文件的表单时,会有些问题。

首先,因为使用的是 FormData,所以必须在传入 $.ajax 的参数中配置 processData: false。

否则将会抛出 Illegal invocation 的异常,因为 jQuery 默认是会对传入的 data 字段的数据进行处理的。

官方文档是这么解释的:

使用 jQuery.ajax 上传带文件的表单遇到的问题

其次,注意请求的 Content-Type 首部,默认是 application/x-www-form-urlencoded; charset=UTF-8,也就是我们通常见的 “a=A&b=B” 这种格式。但使用 FormData 时,就不行了。

对参数添加 contentType 字段,将其值设置为 false 即可。如果 jQuery 版本小于 1.6,则手动设置为 multipart/form-data。具体说明请见文档说明:

使用 jQuery.ajax 上传带文件的表单遇到的问题

我以前通常都是使用原生的 XMLHttpRequest,所以倒也没有遇到过这种问题。既然遇到了,就得解决。因此记录下来,以备日后查找。

以上所述是小编给大家介绍的使用 jQuery.ajax 上传带文件的表单遇到的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
Oct 16 Javascript
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
jQuery插件实现控制网页元素动态居中显示
Mar 24 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
js实现内容显示并使用json传输数据
Mar 16 Javascript
js基础之DOM中元素对象的属性方法详解
Oct 28 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
js canvas实现简单的图像扩散效果
Jun 28 Javascript
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
vue.js使用3DES加密的方法示例
May 18 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
Apr 29 Javascript
微信小程序 开发工具快捷键整理
Oct 31 #Javascript
微信小程序 实现tabs选项卡效果实例代码
Oct 31 #Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
Oct 31 #Javascript
jQuery绑定事件的四种方式介绍
Oct 31 #Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
Oct 31 #Javascript
JS中作用域和变量提升(hoisting)的深入理解
Oct 31 #Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 #Javascript
You might like
摩卡咖啡
2021/03/03 咖啡文化
CodeIgniter生成静态页的方法
2016/05/17 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
一些不错的js函数ajax
2008/08/20 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
Python读写Redis数据库操作示例
2014/03/18 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
幼儿园辞职信范文
2015/02/27 职场文书