我正在尝试使用jQuery的ajax
方法从表单提交一个文件:
var ofile=document.getElementById('image').files[0];
var formdata = new FormData();
formdata.append("image",ofile);
$.ajax({
url:'elements/save_elements',
data:formdata,
type:'POST'
});
这将导致错误TypeError: 'append' called on an object that does not implement interface FormData
。
是什么导致了这个错误?这并不是发生在实际的formdata.append
上,而是发生在jQuery内部。
发布于 2013-11-17 06:38:09
我在类似的代码中也遇到了同样的问题。关于这个错误的信息严重匮乏,因此由于操作人员没有详细说明:
通过一些调试,我意识到错误是由jquery中的ajax调用抛出的,而不是实际的append。原来我忘了在ajax请求中添加processData: false, contentType: false
;这样做解决了这个问题。
发布于 2016-09-14 02:02:20
当您将以下内容添加到ajax对象时,它可以很好地工作:
contentType: false,
processData: false,
所以它应该看起来像这样:
$.ajax({
url:'elements/save_elements',
data:formdata,
type:'POST',
contentType: false,
processData: false,
});
发布于 2017-07-02 18:38:40
将这些参数添加到ajax解决了这个问题
$.ajax({
url: 'upload_ajax.php',
type: 'POST',
data: formData,
contentType: false,
processData: false,
https://stackoverflow.com/questions/19722920
复制相似问题