您现在的位置是:网站首页 > 代码编程 > WEB前端WEB前端

【原】ajax提交formdata,报错Uncaught TypeError: Illegal invocation(…)

不忘初心 不忘初心 2019-07-05 围观() 评论() 点赞() WEB前端

简介:在使用ajax提交formdata时,报了一个错:“Uncaught TypeError: Illegal invocation(…)”,之前一直都是直接利用jquery,使用$.submit()这种方式,也没太在意一些细节,这次使用FormData()方式来模拟form表单提交,直接凉凉。。。

在使用ajax提交formdata时,报了一个错:“Uncaught TypeError: Illegal invocation(…)”,之前一直都是直接利用jquery,使用$.submit()这种方式,也没太在意一些细节,这次使用FormData()方式来模拟form表单提交,直接凉凉。。。

ajax提交formdata,报错Uncaught TypeError: Illegal invocation(…)

折腾了一圈,最终定位到问题的原因:对提交的form表单数据进行了重复处理

代码如下:

var formData = new FormData();// 声明表单对象,括号中可以传递一个form对象

formData.append("username",  "积微成著");

$.ajax({
	type: 'post',
	url: '/user/update',
	dataType: 'json',
	data: formData,
	processData : false,// 必须要加这一句,否则会对formdata二次处理
	success: function(data) {
		if (data.code == 0) {
			alert('信息修改成功');
		} else {
			alert(data.msg);
		}
	},
	error: function(XMLHttpRequest, textStatus, errorThrown) {
		alert('系统异常');
	}
});

在代码中的注释中我已经标明了解决方法,必须要设置processData为false才能解决这个问题。

简单描述一下问题产生的原因,ajax在提交请求的时候,会对处理的数据进行表单相关的处理,所以在使用formdata的时候,因为它已经是一个表单对象了,就不需要再处理了

jsajaxformdata

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们